設計模式 單例設計模式

2021-10-07 23:42:01 字數 822 閱讀 6152

單例設計模式保證乙個類在記憶體中只能有乙個物件-------->不讓其他類建立物件------>建構函式私有化,類中建立乙個物件,定義乙個方法返回值是該物件---->其他類通過方法獲取類物件。

可分為兩類-----懶漢式和餓漢式

懶漢式-----使用的時候才會建立例項物件

餓漢式------直接建立例項物件

餓漢式

//餓漢式

public class singleton

//返回物件例項

public static singleton getinstance()

}

懶漢式

//懶漢式

public class singleton2

//提供對外方法

public static singleton2 getinstance()}}

return singleton2;

}}

雙重鎖定---------->為了確保只有乙個例項物件

兩個執行緒同時呼叫getinstance(),均通過第乙個if----->遇到synchronized,執行緒a進入第二個if,執行緒b等待------>執行緒a建立物件,退出-------->執行緒b進入,檢測到物件不為空,不能呼叫.

如果沒有第二層if  ,執行緒b仍然可以建立物件-------------->存在兩個例項物件,違背單例設計模式初衷。

第一層if,主要為了提高效能,執行緒a建立例項物件後,其他執行緒不必進入synchronized。

設計模式 單例設計模式

歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...

設計模式 單例設計模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...

設計模式 單例設計模式

設計模式是對問題行之有效的解決方案,它其實是一種思想。單例設計模式 解決的問題 可以保證乙個類在記憶體中只能有乙個物件。比如多個程式使用相同的配置資訊物件時,就需要保證物件的唯一性 如何保證唯一性 1 不允許其他程式用new建立類物件 2 在該類中建立乙個本類例項 3 對外提供乙個方法讓其他程式可以...