JAVA中单例模式的几种实现方式(二)

2014-11-24 02:01:23 · 作者: · 浏览: 1
eton)
枚举单例(Enum Singleton)是实现单例模式的一种新方式,枚举这个特性是在 Java5才出现的,在《Effective Java》一书中有介绍这个特性。下面是这种方法的具体实现代码:
复制代码
public enum Singleton {
INSTANCE("hello") {
public void someMethod() {
// . . .
}
};
private String name;
private void PrintName(){System.out.println(name);}
protected abstract void someMethod();
}
复制代码
你可以通过Singleton.INSTANCE来访问该单示例变量。默认枚举实例的创建是线程安全的,但是在枚举中的其他任何方法由程序员自己负责。如果你正在使用实例方法,那么你需要确保线程安全(如果它影响到其他对象的状态的话)。传统单例存在的另外一个问题是一旦你实现了序列化接口,那么它们不再保持单例了,但是枚举单例,JVM对序列化有保证。枚举实现单例的好处:有序列化和线程安全的保证,代码简单。