
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
用私有构造器或者枚举类型强化Singleton属性
Singleton(单例)指仅仅被实例化一次的类.通常用来代表那些本质上唯一的系统组件.
使类成为Singleton会使得它的客户端代码测试变得困难,因为无法给它替换模拟实现,除非它实现了一个充当其类型的接口.
单例的实现:私有构造方法,类中保留一个字段实例(static, final),用public直接公开字段或者用一个public static的getInstance()方法返回该字段.
为了使单例实现序列化(Serializable),仅仅在声明中加上implements Serializable是不够的,为了维护并保证单例,必须声明所有实例域都是transient的,并提供一个readResolve()方法,返回单例的实例.否则每次反序列化一个实例时,都会创建一个新的实例.
从Java 1.5起,可以使用枚举来实现单例:只需要编写一个包含单个元素的枚举类型.
这种方法无偿地提供了序列化机制,绝对防止多次实例化.
了解详情请登陆昆明达内IT培训官网(km.tedu.cn)!