餓漢式單例
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
懶漢式單例
public class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static synchronized Singleton getInstance(){
if (instance == null) instance = new Singleton();
return instance;
}
}
注意:實現一個單例有兩點注意事項,①將構造器私有,不允許外界通過構造器
創建對象;②通過公開的靜態方法向外界返回類的唯一實例。這里有一個問題可
以思考:Spring 的 IoC 容器可以為普通的類創建單例,它是怎么做到的呢?