黑马程序员技术交流社区
标题:
怎样用枚举实现单例设计模式?
[打印本页]
作者:
ccyznhy
时间:
2013-8-22 22:50
标题:
怎样用枚举实现单例设计模式?
求各路大虾指点?
作者:
吴光新
时间:
2013-8-23 02:33
问题最好具体一点,不要提这样抽象的问题,这样是没有分加的
作者:
黑马-文鸿利
时间:
2013-8-23 06:54
public class Singleton {
private Singleton() {}
private static final class Holder {
static final Singleton instance = new Singleton();
}
public static Singleton getInstance() {
return Holder.instance;
}
}
这样写不仅达到了单例的效果,而且还是延迟加载
作者:
耶稣说wō乖
时间:
2013-8-23 10:11
单例的三要素:
1.将构造函数私有化。
2.在类中创建一个本类对象,并私有化。
3.向外提供一个公有方法来获取该对象。
Java枚举类是从Java5开始支持的。
枚举类的构造方法是用private修饰的。
枚举类的所有实例写在类的第一行,这时枚举类就会自动产生实例的对象。
这些实例都是public static void,可以被外界类名.对象直接调用。
因此
当枚举只有一个成员的时候,就可以作为一种单例的实现方式。
另外网上看到有人说enum获得的单例是最安全的,懒汉式和饿汉式的单例都可以用反射得到。
实现代码:
public enum Singleton {
INSTANCE {
public void someMethod() {
// . . .
}
};
protected abstract void someMethod();
}
复制代码
作者:
ccyznhy
时间:
2013-8-23 10:18
。。。还是没有技术分,多谢指点!其实这道题我也会。。。
作者:
黄兴旺
时间:
2013-8-23 16:50
亲 如果问题已解决请把类别改为已解决,谢谢。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2