Singleton指的是仅仅被实例化一次的类,比如唯一的系统组件等,成为Singleton的类测试起来也比较困难。
常用的方法:
1.公有静态final域+私有构造器
public class Egg{ public static final Egg INSTANCE=new Egg(); private Egg(){} }
2.私有静态final域,私有构造器+公有静态方法
public class Egg{ private static final Egg INSTANCE=new Egg(); private Egg(){} public static Egg getInstance(){return INSTANCE;} }
3.Java 1.5以后,添加新方法:Enum
public enum Egg{ INSTANCE; public void ......{} }
Enum方法与共有域接近,但更简洁,关键是提供了序列化机制,绝对防止了多次实例化,但是,还没广泛采用........