Effective Java (3) 使用似有构造器或者枚举强化Singleton属性
来源:互联网 发布:小受坐轮椅卖淘宝 编辑:程序博客网 时间:2024/05/21 06:19
摘要:
Singleton是仅被初始化一次的对象,往往是一些系统组件,比如文件系统。
方式优点缺点final公有静态成员代码中会清晰表明静态成员是一个SingletonSingleton模式固定,无法不改变API地改为其他模式,需要注意序列化工厂方法灵活的API,容易被修改需要注意多线程安全,需要注意序列化使用枚举天生支持序列化 单元素枚举是最佳的Singleton实现模式。正文:
Singleton是一种广泛使用的模式。在1.5版本之前,有2种方式可以实现。
一是final 共有静态成员:
public class Singleton{ public static final instance=new Singleton(); private Singleton(){ }}
使用这样的方式,可以很明确的看出Singleton实例。
另一种方法是工厂方法:
public class Singleton{ private static final Singleton; private Singleton(){ } public static Singleton getInstance(){ if(instance ==null){ instance = new Singleton(); } return instance; }}
使用工厂方法的好处在于,可以不改变接口而替换Singleton的实现,比如从单一实例变成每个线程一个实例。
另外在1.5以后,可以使用枚举来创建实例:
public enum Singleton{ INSTANCE; public someMethod(){ ... }}
对于单一实例,enum是最好的实现,因为这个方式天生支持序列号,而且可以保证实例唯一性
0 0
- Effective Java (3) 使用似有构造器或者枚举强化Singleton属性
- Effective java第三条:使用私有构造器或者枚举类型强化Singleton属性
- Effective Java (3) - 用私有构造器或者枚举类型强化Singleton属性
- effective java(3) 之用私有构造器或者枚举类型强化Singleton属性
- 《effective java》读书札记第三条用私有构造器或者枚举类型强化Singleton属性
- 用私有构造器或者枚举类型强化singleton属性——Effective Java 读书笔记
- Effective Java 学习 第三条 用私有构造器或者枚举类型强化Singleton属性
- Effective Java 2.3——用私有构造器或者枚举类型强化Singleton属性
- Effective Java -- 用私有构造器或者枚举类型强化Singleton属性
- Effective Java之用私有构造器或者枚举类型强化Singleton属性(三)
- 《Effective java》读书记录-第3条-用私有构造器或者枚举类型强化Singleton属性
- Effective Java 创建和销毁对象 3.用私用构造器或者枚举类型强化Singleton属性
- Java学习笔记3:用私有构造器或者枚举类型强化Singleton属性
- Java学习笔记3:用私有构造器或者枚举类型强化Singleton属性
- 用私有构造器或者枚举类型强化 Singleton属性
- EffectiveJava-用私有构造器或者枚举强化Singleton属性
- 用私有构造器或者枚举类型强化Singleton属性
- 用私有构造器或者枚举类型强化Singleton属性
- JS禁用右键,禁用打印,防止另存为
- Local Search
- linux下启动tomcat的时候提示java.net.UnknownHostException的解决办法
- C/C++ 中的assert()宏 断言机制
- 享受学生给我的精神动力
- Effective Java (3) 使用似有构造器或者枚举强化Singleton属性
- c#将网络上的图片读成字节流解决思路
- 关于Handler
- 一道淘汰85%面试者的百度开发者面试题
- 枚举
- 顶部隐藏/显示面板
- 数组指针与指针数组
- excel导入导出的通用方案
- “default”标签跳过“ ”的初始化操作问题解决