单例模式是开发中用的最多的设计模式之一,在诸如数据库连接池、配置文件读取等业务场景广泛使用。单例的Java实现大家都知道有两种方式,最初的英文文档翻译者为其起了很有趣的名字:“懒汉式”和“饿汉式”,当然还包括这两种方式的其他变种,比如增加了相关线程安全的同步锁,但即使这样也不能实现绝对意义上的Singleton ,因为Java本身的反射机制可以绕过构造方法生成对象,即使你把构造方法变成了Private。
Java1.5之后,随着枚举类型的加入,单例多了一个实现方法,(包含单个元素的枚举类型):
使用枚举实现绝对单例
最新推荐文章于 2023-03-17 10:16:15 发布
单例模式是常用的设计模式,常用于数据库连接池和配置读取。传统的Java单例实现包括懒汉式和饿汉式,但无法完全避免多实例问题,因为反射可以绕过私有构造器。从Java1.5开始,枚举提供了一种确保单例绝对唯一且线程安全的方式,同时也防止了反射和序列化导致的多次实例化。
摘要由CSDN通过智能技术生成