IT评测·应用市场-qidao123.com技术社区

标题: 【设计模式系列】单例模式(二十) [打印本页]

作者: 海哥    时间: 2024-12-3 04:30
标题: 【设计模式系列】单例模式(二十)
一、什么是单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式,属于创建型模式。它的目标是确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。
单例模式的主要特点包括:
二、单例模式的典型实现案例

2.1 懒汉式(线程不安全)

  1. public class Singleton {
  2.     private static Singleton instance;
  3.     private Singleton() {}
  4.     public static Singleton getInstance() {
  5.         if (instance == null) {
  6.             instance = new Singleton();
  7.         }
  8.         return instance;
  9.     }
  10. }
复制代码
2.2 饿汉式(线程安全)

  1. public class Singleton {
  2.     private static final Singleton instance = new Singleton();
  3.     private Singleton() {}
  4.     public static Singleton getInstance() {
  5.         return instance;
  6.     }
  7. }
复制代码
2.3 双重校验锁(Double-Checked Locking,线程安全,保举方式)

  1. public class Singleton {
  2.     private static volatile Singleton instance;
  3.     private Singleton() {}
  4.     public static Singleton getInstance() {
  5.         if (instance == null) {
  6.             synchronized (Singleton.class) {
  7.                 if (instance == null) {
  8.                     instance = new Singleton();
  9.                 }
  10.             }
  11.         }
  12.         return instance;
  13.     }
  14. }
复制代码
2.4 静态内部类(线程安全)

  1. public class Singleton {
  2.     private Singleton() {}
  3.     private static class SingletonHolder {
  4.         private static final Singleton INSTANCE = new Singleton();
  5.     }
  6.     public static Singleton getInstance() {
  7.         return SingletonHolder.INSTANCE;
  8.     }
  9. }
复制代码
单例模式适用于需要全局只有一个实例的场景,如配置管理器、线程池、缓存等。然而,过度利用单例可能会导致代码的耦合度高,难以测试和维护。因此,在设计时需要根据实际需求谨慎利用单例模式。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4