標籤:條件 == nal rgs 包含 equals 接收 傳回值 stat
Java軟體設計模式一共分為23種;
一般常用的有:
單例設計模式
裝飾設計模式
工廠設計模式
單例設計模式(以後的用處:spring架構IOC,預設建立的對象都是單例的):
單例模式是一種常用的軟體設計模式。在它的核心結構中只包含一個被稱為單例類的特殊類。通過單例模式可以保證系統中一個類只有一個執行個體而且該執行個體易於外界訪問,從而方便對執行個體個數的控制並節約系統資源。如果希望在系統中某個類的對象只能存在一個,單例模式是最好的解決方案。
單例設計模式分為兩種(餓漢式和懶漢式):
①餓漢式(常用):
特點:只建立一個對象,返回該對象供使用,不能在其它類裡執行個體化。
public class SingleClass {
private SingleClass(){} //私人化構造方法 不能new對象
private static final SingleClass s=new SingleClass();
//建立一個返回本類對象的方法
public static SingleClass getInstance(){
return s;
}
}
②懶漢式:
特點:先不建立對象,用if條件判斷,如果沒有這個對象才會建立。
public class LazySingleClass {
private LazySingleClass(){} //私人化構造方法
private static LazySingleClass lsc=null;
//同步代碼塊
public synchronized static LazySingleClass getInstance(){
if(lsc==null)
lsc= new LazySingleClass();
return lsc;
}
}
我們可以建立一個測試類別
public class Test {
public static void main(String[] args) {
//(接收傳回值Ctrl+1 點擊new local variable)
//餓漢式
SingleClass s1 = SingleClass.getInstance();
SingleClass s2 = SingleClass.getInstance();
//比較s1和s2是否為同一個對象
System.out.println("餓漢式:"+s1.equals(s2));
//懶漢式--------------
LazySingleClass l1=LazySingleClass.getInstance();
LazySingleClass l2=LazySingleClass.getInstance();
//比較l1和l2是否為同一個對象
System.out.println("懶漢式:"+l1.equals(l2));
}
}
這時候我們可以看到控制台輸出結果為:
餓漢式:true
懶漢式:true
結論:通過單例模式可以保證系統中一個類只有一個執行個體。
Java軟體設計模式------單例設計模式