使用枚举实现绝对单例
来源:互联网 发布:2k17科比捏脸数据 编辑:程序博客网 时间:2024/04/28 12:23
单例模式是开发中用的最多的设计模式之一,在诸如数据库连接池、配置文件读取等业务场景广泛使用。单例的Java实现大家都知道有两种方式,最初的英文文档翻译者为其起了很有趣的名字:“懒汉式”和“饿汉式”,当然还包括这两种方式的其他变种,比如增加了相关线程安全的同步锁,但即使这样也不能实现绝对意义上的Singleton ,因为Java本身的反射机制可以绕过构造方法生成对象,即使你把构造方法变成了Private。
Java1.5之后,随着枚举类型的加入,单例多了一个实现方法,(包含单个元素的枚举类型):
public enum Elvis { INSTANCE; public void leaveTheBuilding() { } }优势:
- 无偿提供序列化;
- 绝对防止多次实例化;
- 防反射,这样就没办法反射生成对象了;
- 简洁明了;
单元素的枚举类型本应该成为单例模式的最佳实现方式,只可惜这种方式在现实开发中很少被使用。
0 0
- 使用枚举实现绝对单例
- 使用枚举实现单例
- 使用单枚举类型实现单例
- 使用枚举来实现单例模式
- 单例--使用枚举类型实现
- 使用枚举enum实现单例模式
- 使用枚举实现单例模式
- Java枚举使用以及枚举实现单例模式
- 使用单元素枚举类实现单例模式
- 枚举实现单例
- 使用私有构造方法或者枚举类型实现单例
- Android使用枚举单例实现Toast快速刷新
- Android使用枚举单例实现Toast快速刷新
- 使用enum枚举数据类型实现多线程中的单例模式
- 单例模式之使用enum枚举数据类型实现
- 枚举单例的实现
- Java 枚举实现单例
- 用枚举实现单例
- spark源码阅读笔记Spark原理(一)基本前提
- Java面试题之精选最常见的面试真题 上
- web App和hybid App框架
- oc swift 交互
- python 的入口实现
- 使用枚举实现绝对单例
- SPFA+二分-BZOJ-1614-[Usaco2007 Jan]Telephone Lines架设电话线
- SQL Server Update字段值为ROW_NUMBER()
- Django学习随手记(八)
- 使用cocoaPod建立Podfile并导入三方
- Entity Framework 基本用法
- 正式赛-ZZULIOJ-1879-蛤玮买好了礼物
- iOS开发 ☞ MJRefresh
- ios uiwebview 拦截 点击事件