Blog
It's a Wonderful Life
java单例模式
static
域方式:
class Singleton
{
private static final Singleton instance = new Singleton();
private Singleton()
{
throw new AssertionError();
}
public static Singleton getInstance()
{
return instance;
}
public void show()
{
System.out.println("Singleton instance showing...");
}
}
enum
语法:
public enum SINGLETON
{
INSTANCE;
public void show()
{
System.out.println("Singleton instance showing...");
}
}
推荐使用enum
语法来实现单例,因为这样做
- 写法简单
- 与
static
域方式相比,使用enum
是lazy loaded的,即只有在方法被调用的时候对象才被创建 enum
原生提供Serialization
支持enum
是默认线程安全的