强化的单例属性_Effective Java

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方法与共有域接近,但更简洁,关键是提供了序列化机制,绝对防止了多次实例化,但是,还没广泛采用........

posted @ 2015-08-26 19:13  toto怎么会喝醉  阅读(125)  评论(0编辑  收藏  举报