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

01 设计模式--单例模式

1. 单例模式

单例模式有两种实现方式:

1.1 饿汉模式(Eager Initialization):在类加载时就创建单例实例,无论是否需要使用该实例。

饿汉模式在类加载时就创建单例实例,无论是否需要使用该实例。

饿汉模式的优点是实现简单,线程安全,因为实例在类加载时就被创建。

缺点是可能会导致资源浪费,因为即使该单例实例从未被使用,也会在程序启动时被创建。

public class Singleton {private static Singleton instance = new Singleton(); // 在类加载的时候就创建实例private Singleton() {}  // 将构造方法私有化public static Singleton getInstance() {  // 提供一个公有的静态方法,以获取实例return instance;}
}

1.2 懒汉模式(Lazy Initialization)

懒汉模式在需要时才创建单例实例,例如使用 get 创建。

懒汉模式的优点是节省资源,因为实例在需要时才被创建

缺点是在多线程环境下需要考虑线程安全问题,需要额外的同步措施来确保只有一个实例被创建。


public class Singleton {private static Singleton instance; // 声明一个静态的、私有的该类类型的变量,用于存储该类的实例private Singleton() {} public static Singleton getInstance() { // 提供一个公有的静态方法,以获取实例if (instance == null) { // 第一次调用该方法时,才真正创建实例instance = new Singleton(); }return instance;}
}
http://www.lryc.cn/news/347191.html

相关文章:

  • css backdrop-filter 实现背景滤镜
  • AR人脸道具SDK解决方案,实现道具与人脸的自然融合
  • Windows安装RabbitMQ教程(附安装包)
  • 这个问题无人能解,菜鸟勿进
  • 揭秘高效引流获客的艺术:转化技巧大公开
  • 【Unity 鼠标输入检测】
  • LeetCode hot100-33-Y
  • C++和Python通信引文道路社评电商大规模行为图结构数据模型
  • 单片机-点亮第一盏灯
  • C++组合类
  • Linux学习笔记3
  • 免费证件照一键换底色
  • 使用 FFmpeg 从音视频中提取音频
  • GraphQL在现代Web应用中的应用与优势
  • socket编程 学习笔记 理解
  • SC-Lego-LOAM建图与ndt_localization的实车实现
  • vs code中如何使用git
  • Vue项目中如何通过配置修改项目名称
  • ThinkPHP5.1 创建控制器类
  • 完全背包问题(c++)
  • 综合性练习(验证码案例)
  • 实用的Chrome命令 帮你打开Chrome浏览器的隐藏功能
  • Linux提权--定时任务--打包配合 SUID(本地)文件权限配置不当(WEB+本地)
  • CSS-盒子模型
  • WPF之页的使用
  • 【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )
  • thinkphp5 中控制器的创建和使用方法
  • [Linux] 常用服务器命令(持续更新)
  • 编译官方原版的openwrt并加入第三方软件包
  • PC适配移动端