设计模式-单例模式概述 | 京东云技术团队

💡 原文中文,约1100字,阅读约需3分钟。
📝

内容提要

介绍单例设计模式的原理和实现方式,包括饿汉式、懒汉式、双重检测、静态内部类和枚举。适用于需要保证实例唯一性和线程安全性的场景,如系统配置信息类。存在OOP特性支持和可测试性问题,可用静态方法、工厂模式和Spring IOC容器替代。

🎯

关键要点

  • 设计模式分为创建型、结构型和行为型,创建型模式解决对象创建问题。
  • 单例模式只允许创建一个实例对象,构造函数需私有化以避免外部创建实例。
  • 实现单例时需考虑线程安全、延迟加载、性能、序列化和反射攻击等问题。
  • 饿汉式在类加载期间初始化实例,线程安全但不支持延迟加载。
  • 懒汉式支持延迟加载,但可能导致性能瓶颈和低并发。
  • 双重检测支持延迟加载和高并发,解决了懒汉式的并发问题。
  • 静态内部类实现单例,支持延迟加载和高并发,线程安全性由JVM保证。
  • 枚举类型的单例实现简单,保证线程安全和实例唯一性,解决序列化问题。
  • 单例适用于系统配置信息类等需要唯一实例的场景,也可解决资源访问冲突。
  • 单例模式对OOP特性支持不友好,隐藏类依赖关系,影响代码扩展性和可测试性。
  • 替代方案包括静态方法、工厂模式和Spring IOC容器。
➡️

继续阅读