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

单例模式(Singleton Pattern)详解

单例模式(Singleton Pattern)详解


1. 定义与核心目标

单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。核心目标:

  • 控制实例数量:防止重复创建对象,节省资源。
  • 统一管理共享资源:如配置管理、数据库连接池、日志处理器等。

2. 实现方式及对比

(1) 饿汉式(Eager Initialization)
  • 特点:类加载时立即创建实例,线程安全但可能浪费资源。
  • 代码示例
    public class EagerSingleton {private static final EagerSingleton instance = new EagerSingleton();private EagerSingleton() {} // 私有构造方法public static EagerSingleton getInstance() {return instance;}
    }
    
  • 优点:简单、线程安全。
  • 缺点:实例在类加载时创建,即使未使用也会占用内存。

(2) 懒汉式(Lazy Initialization)
  • 特点:延迟实例化,首次调用时创建对象。

  • 基础版(非线程安全)

    public class LazySingleton {private static LazySingleton instance;private LazySingleton() 
http://www.xdnf.cn/news/6780.html

相关文章:

  • 线程池设计
  • 码蹄集——圆包含
  • GraphPad Prism项目的管理
  • 兼容性测试的方法与实践要点
  • Qwen3技术报告
  • Axure疑难杂症:剖析面包屑导航“用户不迷路”(玩转导航)
  • 华为云Flexus+DeepSeek征文|基于Dify平台tiktok音乐领域热门短视频分析Ai agent
  • Unity雷火UX工具插件中的本地化功能(Unity项目中文字图片多语言功能)
  • Feign异步模式丢失上下文问题
  • 云轴科技ZStack官网上线Support AI,智能助手助力高效技术支持
  • 如何用PDO实现安全的数据库操作:避免SQL注入
  • GTS-400 系列运动控制器板卡介绍(三十三)---运动程序单线程累加求和
  • 【漫话机器学习系列】262.交叉项(Interaction Term)
  • redisson基础
  • 云基内容中台构建企业智慧实践
  • Linux系统启动相关:vmlinux、vmlinuz、zImage,和initrd 、 initramfs,以及SystemV 和 SystemD
  • 数据如何驱动互联网一体化发展?
  • 大模型——Crawl4AI使用JsonCssExtractionStrategy进行结构化数据提取
  • 【专利信息服务平台-注册/登录安全分析报告】
  • 如何通过URL链接让亚马逊网站返回指定像素大小的产品主图片
  • 今日积累:若依框架配置QQ邮箱,来发邮件,注册账号使用
  • 香橙派Zero3跨网络音乐服务系统搭建与内网穿透技术应用实践
  • android studio clone子分支
  • logrotate按文件大小进行日志切割
  • 面试题:详细分析Arraylist 与 LinkedList 的异同
  • Qt—用SQLite实现简单的注册登录界面
  • 基于大数据的租房信息可视化系统的设计与实现【源码+文档+部署】
  • springCloud/Alibaba常用中间件之Seata分布式事务
  • elementUI源码学习
  • 【RabbitMQ】消息丢失问题排查与解决