單例模式**
/*
餓漢模式
*/ class singletondemo
public static singletondemo gets()}/*
懶漢模式
*/class singletondemo1
public static singletondemo1 gets()
return instance;
}}/**
* 單例模式,懶漢式,執行緒安全,多執行緒環境下效率不高
* synchronized 關鍵字,代表這個方法加鎖,相當於不管哪乙個執行緒(例如執行緒a),
* 執行到這個方法時,都要檢查有沒有其它執行緒b(或者c、 d等)正在用這個方法(或者該類的其他同步方法),
* 有的話要等正在使用synchronized方法的執行緒b(或者c 、d)執行完這個方法後再執行此執行緒a,
* 沒有的話,鎖定呼叫者,然後直接執行。
*/class singletondemo2
public static synchronized singletondemo2 gets()
return sd;
}}/*
雙重加鎖 懶漢模式
*/class singletondemo3
public static singletondemo3 getsd3()}}
return sd3;
}}
23種設計模式 單例模式
某些情況,如 執行緒池,乙個專案中匯流排程數量以及生命週期,可能需要統一控制 如果執行緒池自身可建立多個例項,那麼就無法統一控制,此時,只要能控制線程池物件的數量為乙個,那麼就可以實現統一控制的目標 注意 現實中真正使用純的單例模式並不多 如 spring bean 通過配置來決定是否使用單例 執行...
23種設計模式 單例模式
單例模式需要保證,構造方法一定是私有化的,並且類的全域性變數必須是靜態的,私有的 這樣才能有唯一的例項化途徑 錯誤 一 public class singleton public static singleton getinstance 上述方法,並沒有把類變數singleton設定為靜態的,這樣,...
23種設計模式 單例模式
單例模式 保證乙個類只有乙個例項,並且提供乙個該例項的全域性訪問點 單例模式的要素 public class singleton1 2 類初始化的時候,立即載入該物件 private static singleton1 singleton1 newsingleton1 3 提供獲取該物件的公共方法 ...