黑马程序员技术交流社区
标题:
求解关于枚举的单例模式如何实现
[打印本页]
作者:
余勇
时间:
2013-3-4 14:25
标题:
求解关于枚举的单例模式如何实现
本帖最后由 余勇 于 2013-3-4 14:49 编辑
今天看到高新技术里,张老师讲到枚举,枚举成员只有一个的时候也可以实现单例模式,不太确定,求解?
public enum Applet {
APPLET
}
作者:
lzw123451
时间:
2013-3-4 14:39
你要把枚举的构造函数私有,让外边建不了对象。这样枚举的对象就只有一个了,就是枚举里面的唯一元素。
其实和前面的单例差不多意思。
作者:
唐长智
时间:
2013-3-4 16:16
单例的特征应该是类的构造方法私有,类中保证只有一个实例对象。不允许外部创建新的实例对象,给出方法能让外部获得类中唯一的实例对象。一般方法都是静态的。
class Test{
private Test(){
//私有构造方法
}
private static Test t1 = new Test();
public static Test getInstance(){
return t1;
//通过方法返回实例
}
}
复制代码
而枚举类是不能创建新对象的,类中所有的元素都是静态的,所以如果一个枚举类只有一个元素的话。
这个枚举类只存在一个对象,并且外部不能在创建新的元素。完全符合单例设计模式的标准
enum Test1{
Mon;
//有且只有一个实例对象,并且要通过静态调用Test1.Mon;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2