系統(tǒng)中共享的對象可以定義為單例模式悴势。
惡漢模式
public class A{
//將構造器私有化侯谁,防止外部new出新的對象
private A(){}
//創(chuàng)建私有的實例對象
private static A a = new A();
//創(chuàng)建一個公共靜態(tài)方法噩茄,使外部能夠得到實例
public static A getInstance(){
return a;
}
}
推薦使用的懶漢模式 (雙重檢查棺亭,靜態(tài)類部類湾戳,枚舉都為線程安全的模式)
public class A{
//將構造器私有化徽龟,防止外部new出新的對象
private A(){}
//第一種 雙重檢查
private static A a;
public static A getInstance(){
if(a==nulll){
synchronized(A.class){
if(a==null){
a = new A();
}
}
}
return a;
}
}
//第二種叮姑,靜態(tài)類部類
private static class INSTANCE{
private static final A a = new A();
}
public static A getInstance(){
return INSTANCE.a;
}
枚舉
public enum A{
INSTANCE;
}