Effective Jave——第3条:用私有构造类或者枚举类实现Singleton
来源:互联网 发布:淘宝卖家设置多个客服 编辑:程序博客网 时间:2024/06/08 09:03
Singleton实例化一次的类,常用于代表那些本质上唯一的系统组件。
在Java 1.5之前,有两种方式来实现Singleton,这两种方法均将构造函数设为私有,并且公有的静态成员。
1.将final域设置为公有
public class Elivis { public static final Elivis INSTANCE= new Elivis(); private Elivis(){...} //确保只返回一个Elivis实例,并且让GC关注伪装的Elivis对象 private Object readResolve() { return INSTANCE; } public void leaveTheBuilding() {...}}
2.静态工厂方法设为公有
public class Elivis { private static final Elivis INSTANCE= new Elivis(); private Elivis(){...} public static Elivis getInstance() { return INSTANCE; } //确保只返回一个Elivis实例,并且让GC关注伪装的Elivis对象 private Object readResolve() { return INSTANCE; } public void leaveTheBuilding() {...}}
3.自Java 1.5发布之后,还有实现Singleton的第三种方式,即是使用单个元素枚举
public enum Elivis{ INSTANCE; public void leaveTheBuilding() {...}}
该方法提供了序列化机制,绝对防止多次实例化,即使是在面对复杂的序列化或者反射攻击时。
0 0
- Effective Jave——第3条:用私有构造类或者枚举类实现Singleton
- 《Effective java》读书记录-第3条-用私有构造器或者枚举类型强化Singleton属性
- 第3条 创建与销毁对象——用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- EffectiveJava 第3条 :用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 第3条:用私有构造器或者枚举类型强化Singleton属性
- 用私有构造器或者枚举类型强化singleton属性——Effective Java 读书笔记
- Effective Java 2.3——用私有构造器或者枚举类型强化Singleton属性
- 《effective java》读书札记第三条用私有构造器或者枚举类型强化Singleton属性
- Effective Java 学习 第三条 用私有构造器或者枚举类型强化Singleton属性
- Effective Java (3) - 用私有构造器或者枚举类型强化Singleton属性
- sql语句 拼接字符串 含有 单引号 ’
- Java 变量类型
- “Connection refused” vs “No route to host”
- <转>Spark 生态系统组件
- 字母在Java中占多少位
- Effective Jave——第3条:用私有构造类或者枚举类实现Singleton
- dubbo-monitor安装
- js笔记一:js中forEach,for in,for of循环的用法
- TranslationAnimation参数最好的解释以及基本用法
- SQL SERVER 常见函数应用
- 抽屉布局侧滑界面穿透了,导致被遮挡的界面可以被点击
- 一个简单的linux命令——locate
- 程序设计实训三 电子词典
- python virtualenv使用