Singleton指仅仅被实例化一次的类,通常用来代表那些本质上唯一的系统组件,实现Singleton有三种方法:
1)公有静态成员是个final域,享有特权的用户可以调用AccessibleObject.setAccessible方法,通过反射机制调用私有构造器。
public class User{ public static final User INSTANCE = new User(); private User{ } public void doSomeThing(){...} }
2)公有静态成员是个静态工厂方法
public class User{ public static final User INSTANCE = new User(); private User{ } public static User getInstance(){ return INSTANCE; } public void doSomeThing(){...} }
3)单个元素的枚举类型
public enum User{ INSTANCE; public void doSomeThing(){...} }