單例模式之餓漢式與懶漢式

2021-08-21 21:16:20 字數 1052 閱讀 6771

單利模式:乙個應用中有且只有該類的乙個的物件

//餓漢式

public class singleton

//2、提供物件引用

public static singleton singleton = new singleton();

//3、提供方法供外部獲取例項物件

public static singleton getinstance()

}//懶漢式

public class singlefullton

public static singlefullton singlefullton;

public static singlefullton getinstance()

return singlefullton;}}

//dcl模式

//雙重檢測鎖:double check lock

public class singledclton

public static singledclton singledclton;

public static singledclton getinstance()}}

return singledclton;}}

兩者區別

懶漢式:

1、私有化構造方法

2、提供私有化靜態本類物件

3、提供靜態同步方法,返回本類物件,返回之前先判斷物件是否為空,為空則建立物件

惡漢式:

1、私有化其構造方法

2、提供私有化靜態本類物件

3、提供靜態公共方法獲取該類物件

同步鎖start->就緒狀態->爭奪cpu執行權->執行run方法->死亡狀態

開啟a,b執行緒(非同步)

a:if(utils==null):true

b:判斷:true  建立物件 返回

a:建立物件  返回

開啟a,b執行緒(同步)

a:加鎖  判斷:true

b:判斷是否上鎖  上鎖  等待

a: 建立物件 返回 解鎖

b:加鎖  判斷:false  返回  解鎖

單例模式之懶漢式與餓漢式

首先介紹下單例模式存在的意義,不需要輸入引數就可以獲得乙個物件,而且可以保證某乙個類的例項在整個系統中保證唯一性。比如,我們在開發中使用者輸入的一些資訊需要記錄進資料庫,如果使用使用者比較多的時候,每次使用都要建立連線,這樣子把系統大部分的精力都用在了建立連線上而不是資料的操作上。這個時候如果可以保...

單例模式 懶漢式與餓漢式

什麼是單例設計模式 保證這個類的物件永遠有且只有乙個。單例設計模式有兩種 見如下兩種宣告方式 1.懶漢式 設計單例模式 懶漢式 先建立乙個私有的靜態物件 private static user user 建立乙個私有的構造方法 private user 建立乙個公有的靜態的返回物件的方法,需要判斷 ...

單例模式 懶漢式與餓漢式

1 簡述 單例模式 singleton pattern 是一種常用的設計模式,它屬於建立者模式。單例模式只允許有乙個例項,通過建構函式私有化的方式隱藏物件建立入口,取而代之的是提供公共介面用於獲取類的單例。其應用場景廣泛,例如建立管理類 只需要乙個管理實體 或者應用於物件需要限定唯一性的場景等。注意...