package cn.javass.spring.chapter3.bean;
public class Singleton {
//1.私有化構造器
private Singleton() {}
//2.單例緩存者,惰性初始化,第一次使用時初始化
private static class InstanceHolder {
private static final Singleton INSTANCE = new Singleton();
}
//3.提供全局訪問點
public static Singleton getInstance() {
return InstanceHolder.INSTANCE;
}
//4.提供一個計數器來驗證一個ClassLoader一個實例
private int counter=0;
}
以上定義個了個單例類,首先要私有化類構造器;
其次使用InstanceHolder靜態內部類持有單例對象,這樣可以得到惰性初始化好處;
最後提供全局訪問點getInstance,使得需要該單例實例的對象能獲取到;
我們在此還提供了一個counter計數器來驗證一個ClassLoader一個實例。