单例设计模式(Singleton)是指仅仅被实例化一次的类。
Java1.5之前实现Singleton的两种方法:这两种方法都以实现构造器私有并导出公有的静态成员或静态方法的形式确保类的唯一实例。
1,
public class Demo1 {
public static final Demo1 INSTANCE = new Demo1();
private Demo1(){
//......
}
}
私有构造器仅被调用一次,用来实例化公有的静态成员INSTANCE,因为是私有的构造器,所以保证了该类的唯一实例。
2,
public class Demo1 {
private static final Demo1 INSTANCE = new Demo1();
private Demo1(){
//......
}
public static Demo1 getInstance(){
return INSTANCE;
}
}
通过公有域静态方法的调用,实现类的唯一性。公有域静态方法的好处:组成类的成员的声明很清楚的表明了这个类是一个Singleton:公有的静态域是final的,所以该域将总是包含相同的对象引用。
java 1.5后,只需编写一个包含单个元素的枚举类型:
public enum Demo{
INSTANCE;
}