最近在看設計模式之禪,書的內容以講故事的方式介紹了設計模式,強力推薦。
以下是個人對於單例模式的理解
/** 單例模式
* 優點:
* 只有乙個例項,減少了記憶體開支,避免對資源的多重占用(寫檔案方法)
* 只生成乙個例項,減少了系統的效能開銷
* 可以在系統設定全域性的訪問點,優化和共享資源訪問
* 缺點:
* 沒介面,擴充套件很困難
* 測試不方便
* 注意:
* 高併發情況,單例模式的執行緒同步問題(建議餓漢式單例)
* 考慮物件的複製情況(建議不要實現cloneable介面)
*/public class mymain
}//核心
//餓漢式單例
class aclass
//獲取aclass自己建立的單例
public static aclass geta()
public static void say()
}//懶漢式單例,新增synchronized保證執行緒安全
class bclass
//第一次訪問時建立並獲取bclass的單例
public static bclass getb()
public void say()
}//擴充套件
//有上限的多例模式
class cclass{
//定義類上限個數
private static final int maxcount=3;
//定義乙個計數
private static int count=0;
//定義乙個集合容納本身例項
private static arraylistcarraylist=new arraylist<>();
//靜態塊產生例項並新增到集合裡
static {
for(int i=0;i
23種設計模式 單例設計模式
using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace atest.23 定義共有方法 提供乙個全域性訪問點,同時...
設計模式 單例模式 餓漢式單例和懶漢式單例
單例模式 singleton pattern 乙個在設計模式中比較簡單的模式,我們常說的餓漢式和懶漢式是最常舉例的兩種寫法。如下餓漢式 public class singleton 獲取例項物件 public static singleton getsingleton 懶漢式 public clas...
23種設計模式 單例模式
某些情況,如 執行緒池,乙個專案中匯流排程數量以及生命週期,可能需要統一控制 如果執行緒池自身可建立多個例項,那麼就無法統一控制,此時,只要能控制線程池物件的數量為乙個,那麼就可以實現統一控制的目標 注意 現實中真正使用純的單例模式並不多 如 spring bean 通過配置來決定是否使用單例 執行...