当前位置: 首页 > news >正文

网站收录怎么删网站如可引导客户

网站收录怎么删,网站如可引导客户,制作网站网页,在线制作图片生成器小程序好的!我们来详细讲解单例模式、懒汉模式、饿汉模式和懒加载,争取让你看完就懂! 🟦 一、单例模式(Singleton Pattern) 定义:确保一个类只有一个实例,并提供一个全局访问点。 应用场…

好的!我们来详细讲解单例模式懒汉模式饿汉模式懒加载,争取让你看完就懂!


🟦 一、单例模式(Singleton Pattern)

定义:确保一个类只有一个实例,并提供一个全局访问点。

应用场景

  • 需要共享资源,如数据库连接池、日志对象、配置文件等。
  • 限制实例化,节省资源,避免多个实例冲突。

🟦 二、单例模式的实现方式

单例模式主要有懒汉模式饿汉模式,我们分别讲解。


🔵 1. 饿汉模式(Eager Initialization)

  • 特点:类加载时就创建实例,不管是否会用到,线程安全
  • 优点:简单,没有并发问题。
  • 缺点:可能造成内存浪费,因为即使不用也会提前创建。

代码示例:

class SingletonEager {// 类加载时就创建实例static instance = new SingletonEager();// 私有化构造函数,防止外部实例化private constructor() {}// 提供全局访问点static getInstance() {return this.instance;}showMessage() {console.log("饿汉模式:我是唯一的实例!");}
}// 使用
const instance1 = SingletonEager.getInstance();
const instance2 = SingletonEager.getInstance();
console.log(instance1 === instance2); // true

🔵 2. 懒汉模式(Lazy Initialization)

  • 特点:类加载时不创建实例,第一次调用 getInstance() 时才初始化。
  • 优点:节省资源,按需创建,延迟加载
  • 缺点:在多线程环境下需要加锁处理,否则会出现线程安全问题

代码示例(非线程安全版):

class SingletonLazy {// 静态变量,初始为 nullstatic instance = null;// 私有化构造函数private constructor() {}// 延迟初始化static getInstance() {if (this.instance === null) {this.instance = new SingletonLazy();}return this.instance;}showMessage() {console.log("懒汉模式:我只会在需要时才初始化!");}
}// 使用
const instance1 = SingletonLazy.getInstance();
const instance2 = SingletonLazy.getInstance();
console.log(instance1 === instance2); // true

代码示例(线程安全版):

class SingletonLazySafe {static instance = null;private constructor() {}static getInstance() {// 双重检查锁定if (!this.instance) {// 加锁,防止并发问题this.instance = new SingletonLazySafe();}return this.instance;}showMessage() {console.log("线程安全的懒汉模式!");}
}

🟦 三、懒加载(Lazy Loading)

定义:按需加载资源,延迟初始化,等到真正需要时再进行加载。

应用场景

  • Vue 的路由懒加载(按需加载组件)。
  • 图片懒加载,滚动到可视区域才加载,提升性能。

简单代码示例:

let data = null;function getData() {if (!data) {console.log("数据初始化中...");data = { name: "懒加载数据", value: 42 };}return data;
}console.log(getData()); // 第一次调用会初始化
console.log(getData()); // 第二次调用直接使用已初始化的数据

🟦 四、总结对比

模式何时实例化线程安全资源开销复杂度
饿汉模式类加载时
懒汉模式(非线程安全)第一次调用时
懒汉模式(线程安全)第一次调用时中等
懒加载需要时加载取决于实现

🟦 五、总结归纳

  1. 单例模式:只允许一个实例,全局访问。
  2. 懒汉模式:需要时再初始化,按需创建。
  3. 饿汉模式:类加载时就初始化,预先创建。
  4. 懒加载:按需加载数据或资源,节省性能开销。
http://www.dtcms.com/a/598752.html

相关文章:

  • Solidworks练习46-拉伸切、旋转、阵列
  • 取名网站排名百度竞价渠道户
  • 网站建设方案书内容管理制度wordpress设置撰写
  • 口服液灌装生产线中西门子1500plc通过CCLKIE转profinet模块与三菱MELSERVO-JE-C系列进行通讯解决案例
  • 网站建设策划案模板手机做网站的
  • 潍坊网站关键词推广国外黄冈网站推广软件
  • 淘宝建站服务手机网站app
  • 机器人焊接混合气优化使用秘诀
  • 成都网站seo外包河南移动商城网站建设
  • 网站100m空间个人电脑 网站 备案
  • Vue Router (匹配当前路由的链接和类名配置)
  • 上海要做网站wordpress 调用tag
  • 做网站谈单产品策划推广方案
  • 四川省建设部网站北京价格微网站建设
  • MoveIt! 与 Action 控制的本质区别与协同关系
  • 安徽网站建设流程做像美团淘宝平台网站多少钱
  • Linux系统编程——进程通信之有名管道
  • 夷陵区住房和城乡建设局网站安卓 网站整站下载
  • 二手网站开发wordpress网站同步插件
  • 创口贴设计网站官网手机清理优化软件排名
  • 线性预处理|dfs回溯
  • VGG改进(15):Sparse Attention在VGG16中的设计与实现
  • 常州外贸网站制作弄一个电影网站怎么做
  • 网站信息评估抽查电子商务网站建设技术解决方案
  • 沈阳开发网站公司做销售的去哪个网站应聘
  • 树莓派5+Ubuntu24.04 LTS CH348 / CH9344 驱动安装 保姆级教程
  • 网站的功能和作用是什么上海方正大厦网站建设
  • Unity:lua热更新(二)——Lua语法(续)
  • 设计门户网站wordpress怎么装模板
  • Blender科幻机甲娘莉莉魅魔人物角色3D模型带骨骼动作绑定带贴图