單例設計模式,設計模式
單例設計模式解決的問題:保證一個類在記憶體中的對象唯一性。
比如:多程式讀取一個設定檔時,建議設定檔封裝成對象。會方便操作其中的資料,又要保證多個程式讀到的是同一個設定檔對象,就需要該設定檔對象在記憶體中是唯一的。
Runtime()方法就是單例設計模式進行設計的
保證對象唯一性的思想:
1. 不讓其他程式建立該類對象;
2. 在本類中建立一個本類對象;
3. 對外提供方法,讓其他程式擷取這個對象。
保證對象唯一性的步驟:
1.因為建立對象都需要建構函式初始化,只要將本類中的建構函式私人化,其他程式就無法再建立該類對象;
2.就在類中建立一個本類的對象;
3.定義一個方法,返回該對象,讓其他程式可以通過方法就得到本類對象。(作用:可控)
代碼的體現:
1.私人化建構函式;
2.建立私人並靜態本類對象;
3.定義公有並靜態方法,返回該對象。
------------------------------------------------------------------------------
/********* 餓漢式 *********/
class Single(){
private Single(){} //私人化建構函式
private static Single sg = new Single();//建立私人並靜態本類對象
public static Single getInstance(){ //定義公有靜態方法,返回該對象
return sg;
}
}
/********* 懶漢式:消極式載入方法 *********/
class Single2(){
private Single2(){}
private static Single2 sg2 = null;
public static Single2 getInstance(){
if( null == sg2 ){
sg2 = new Single2();
return sg2;
}
}
}