一:什麼是設計模式:是一套被反覆使用,多人知曉的,經過分類編目的,**設計經驗的總結
二:使用設計模式的目的:為了可重用**,讓**更容易讓他人理解,保證**的可靠性
1.單例模式:
1.單例模式目的:保證了應用程式中某個物件的例項有且只有乙個,比如配置檔案,快取,日誌物件等2.單例模式的分類:
1.餓漢模式:
1.實現步驟:
1.自定義乙個私有化的建構函式,不允許外部可以直接建立物件例項
2.建立乙個使用private static修飾的唯一例項
3.為建立的唯一例項物件提供外部可以呼叫他的方法,也就是get方法
2.**實現:
public class singleton
//2.在該類的內部建立乙個唯一例項,這裡用static修飾是因為可以在其他類中同過類名.的方式訪問到建立的例項
//private static singleton instance = new singleton();
//2.一般為了安全起見,一般會把我們的類成員變數私有化,所以要為該例項建立外部可以呼叫他的方法,也就是第三步
private static singleton instance = new singleton();
//3.為私有化的例項提供外部可以呼叫他的方法,也就是提供了乙個get方法
public static singleton getinstance()
}
3.總結:在類中建立乙個唯一例項,該例項在類載入的時候就會例項化
2.懶漢模式:
1.實現步驟:
1.私有化共造方法,不允許外部直接建立物件
2.宣告乙個使用private static修飾的唯一例項,而不是建立
3.提供外部可以呼叫的方法,注意的是這裡要進行判斷唯一例項是否為空,因為第二部只是宣告了乙個例項,而不是建立
2.**實現:
public class singleton2
//2.宣告乙個唯一例項,而不是建立
private static singleton2 singleton;
//3.為建立的唯一例項提供外部可以呼叫的方法
private static singleton2 getsingleton()
return singleton;
}
}3.總結:宣告乙個唯一例項,類在載入的時候不會例項化,而是在具體呼叫的時候建立
3.餓漢模式和懶漢模式的區別:
1.類載入速度:因為餓漢模式在類載入時就例項化了乙個物件,所以類載入速度較慢,而懶漢模式則是在呼叫物件時才例項化唯一例項,所以類載入速度比較快
2.獲取物件速度:餓漢模式獲取物件時比較快,因為在類載入時已經例項化了,而懶漢模式在獲取物件時比較慢,因為物件在獲取時被例項化
3.執行緒安全:餓漢模式是執行緒安全的,懶漢模式是執行緒不安全的
4.補充
:因為上面的懶漢模式中的get方法會造成執行緒不安全,所以要在get方法加上synchronized
設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...