大話設定模式之單例模式

2021-08-19 23:20:01 字數 861 閱讀 5514

單例模式顧名思義就是單個例子的一種模式,在程式中我們有時候會希望乙個類在**的執行中只有乙個例項。這是我們就用到了單例模式。單例模式通常通過是私有化構造方法來實現的,但是略有不同通常分為懶漢和餓漢。

懶漢模式:就是說只有當getinstance方法被呼叫時通過一系列判斷才新建乙個物件例項。

public class singleton 

public singleton getinstance()

return singleton;

}}

懶漢模式通常會伴隨的就是多執行緒的問題,當多個執行緒同時判斷且進入if塊中時,無法保證只產生單個例項,所以可以使用雙重鎖定的方法
public class singleton 

public synchronized singleton getinstance()

}}

return singleton;

}}

但是這樣寫比較麻煩,所以我比較推薦餓漢模式那就是在類載入的時候就初始化乙個例項,這樣就不會出現執行緒的問題了
public class singleton 

public synchronized singleton getinstance()

}

這個模式在單例需求比較多的情況下會占用更多的記憶體,在選擇的時候可以根據個人的條件進行選擇。

還有另外一種實現方式就是靜態內部類實現

public class singleton 	

private singleton()

public singleton getinstance()

}

大話設計模式之單例模式 Singleton

目錄定義 uml參與者示例 定義 單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。應用 每台計算機可以有若干個印表機,但只能有乙個printer spooler,以避免兩個列印作業同時輸出到印表機中。每台計算機可以有若干傳真...

大話設計模式 單例模式

在開發過程中,其實很多情況下,都需要用到單例模式來維持物件的唯一性。比如執行緒池 資料來源 sessionfactory等。一般的做法 懶漢式 public class myclass 宣告乙個靜態方法來返或乙個單例物件 public static myclass getinstance 但是這個會...

大話設計模式 單例模式

一 單例模式 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。二 例項 public class singleton public static singleton getinstance return singleton public class singletondousync publ...