四種單例設計模式

2021-08-31 20:58:11 字數 735 閱讀 8528

public class singletonlazy ;

//私有化該類的構造器

public static singletonlazy getinstance()

//如果沒有例項,就建立乙個

return instance;

//返回例項物件} }

public class singletonhungary

//私有化該類的構造器

public static singletonhungary getinstance() public class singletondoublechecking //私有化構造器

public static singletondoublechecking getinstance()

} }return instance;

}餓漢式跟懶漢式的話他們兩個都是執行緒不安全的,餓漢式是在類載入的時候就建立例項物件,而懶漢式是當需要用到該例項的時候他才去建立乙個例項,開發當中一般用的餓漢式。

另外就要說到雙重鎖機制dcl了,它是執行緒安全的,當遇到併發的時候,它能很好的起作用,先判斷例項為不為null,不為空則不用管,直接返回該例項就行了,當它為null時,就用synchronized為它加鎖,再次判斷是否為空,為空就建立例項,不為空就返回例項。

列舉在例子中有介紹

他們四種方式共有的操作步驟就是:先私有化乙個例項物件,再私有化該類的構造器,然後對外提供共有的訪問方式來訪問該例項物件,細微的差別就是建立例項的時間。

單例模式 四種

餓漢式 單例模式 餓漢式類載入到記憶體後,例項化乙個單例,jvm保證執行緒安全 都不能建立新的,所以安全,多執行緒都是安全的 簡單易用 缺點 不管是否用到,類載入時候就會例項化,浪費 一般專案開發中載入是用的class.forname 將class載入到記憶體,但不例項化,此時,如果使用餓漢,就會消...

單例設計模式的四種實現方式

單例設計模式的三個要求 只能有乙個例項 必須自行建立自己的唯一例項 要對外提供該例項 方法一 餓漢式直接建立例項物件,不管你是否需要這個物件都會去建立 方法一 單例模式的實現 餓漢式,執行緒安全 但效率比較低 public class singleton1 提供對外使用的唯一例項 public st...

python四種實現單例模式

coding utf 8 author xianyt date 2018 func 在預設的情況下建立多個物件的id不相同,如果想要設定為單例模式,可以通過 new 方法中的 instance 在 new 方法中把類例項繫結到類變數 instance上,如果cls.instance為none表示該類...