Java设计模式系列:单例模式的7种实现与适用场景


一、单例模式核心价值与实现原则

1. 使用场景

  • 全局配置类(如数据库连接池)
  • 日志记录器
  • Spring默认Bean作用域
  • 硬件设备访问(如打印机)

2. 设计三原则

  1. 私有构造器:禁止外部实例化
  2. 静态实例持有:全局唯一访问点
  3. 延迟加载(可选):避免资源浪费

二、七种单例实现方式深度解析

1. 饿汉式(急加载)

public class EagerSingleton {
     
    private static final EagerSingleton INSTANCE = new EagerSingleton();  

    private EagerSingleton() {
   }  

    public static EagerSingleton getInstance() {
     
        return INSTANCE;  
    }  
}  

优点:线程安全、实现简单
缺点:类加载即初始化,可能浪费资源


2. 懒汉式(基础版 - 非线程安全)

public class LazySingleton {
     
    private static LazySingleton instance;  

    private LazySingleton() {
   }  

    public static LazySingleton getInstance() {
     
        if (instance == null) {
     
            instance = new LazySingleton();  
        }  
        return instance;  
    }  
}  

风险:多线程环境下可能创建多个实例


3. 同步锁懒汉式(线程安全版)

public class SyncLazySingleton {
     
    private static SyncLazySingleton instance;  

    private SyncLazySingleton() {
   }  

    public static synchronized SyncLazySingleton getInstance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值