Singleton是指同一应用中某个类的对象只能有一个;
应用场景:数据库对象、路径对象;
实现要点:
1.私有的构造函数,保证从类外部无法直接创建对象;
2.私有的静态成员,保证了多次调用类时,该成员变量值唯一;
3.公有的getInstance函数,返回上面的私有静态成员,从外部创建类实例的入口只有这一个;
实现方法一:
public class Singleton {
private Singleton(){}
private static Singleton instance=new Singleton();
public static Singleton getInstance(){
return instance;
}
}
实现方法二:
public class Singleton2 {
private Singleton2(){}
private static Singleton2 instance=null;
public static synchronized Singleton2 getInstance(){
if (instance==null) {
instance=new Singleton2();
}
return instance;
}
}
这两种方法的区别:
一的实例在第一次访问类时创建,二的实例在第一次访问getInstance()时创建