黑馬程式設計師 java基礎 單例設計模式

2021-07-05 08:52:29 字數 1480 閱讀 3217

單例設計模式

什麼叫設計模式

設計模式指的是解決某一類問題行之有效的解決辦法。

單例設計模式是用來解決什麼問題的

單例模式可以保證乙個類的物件唯一性。

比如多個程式都要使用同乙個配置檔案中的資料,且要實現資料共享和交換。必須要將資料封裝到乙個物件中,讓不同的程式操作的是同乙個物件。也就是說必須保證這個配置檔案的物件唯一性。這個時候就是用單例。

單例設計模式的兩種**體現

餓漢式與懶漢式

1.餓漢式單例設計模式:這是先初始化物件,稱為:餓漢式。

singledemo

類一進記憶體,就已經建立好了物件。 1.

//餓漢式單例設計模式

2.class

singledemo   

10.11.

public

singledemo getstring()  

16.17.

}  

18.19. 2.

懶漢式單例設計模式:該單例模式在被呼叫方法時,才初始化物件,也叫物件的延時載入。稱為:懶漢式。

注意:缺點:如果當執行緒剛執行完

if(s==null)

語句,該執行緒失去執行權,而另乙個執行緒也執行該**,判斷

s時也為空,建立了乙個物件,第乙個執行緒在執行時就又建立乙個物件,不能保證單例了。

這時我們想到了鎖。

總結:即便懶漢式能確保只建立乙個物件,但是耗時太多,不如餓漢式方便。

面試點:

if(s==null)

} 20.//

懶漢式單例設計模式

21.class

singledemo2   

28.29.

//懶漢式單例設計模式在被呼叫方法的時候才初始化物件,對,懶漢很懶,被呼叫的時候才初始化

30.public

singledemo2 getstring()  

37.38.

}  

單例設計模式的小測試

1.//

描述超人。

2.class

superman  

3.  

12.13.

public

static

superman getinstance()

//獲取本類物件的方法

14.  

17.18.

public

void

setname(string name)  

19.  

22.23.

public

string getname()  

24.  

27.28.

public

void

fly()  

29.  

32.}  

33.34.

class

singletest   

35.  

46.}  

黑馬程式設計師 java單例設計模式

asp.net unity開發 net培訓 期待與您交流!下面介紹一下單例設計模式。單例,即單個例項物件。那麼單例設計模式 即解決乙個類在記憶體中只存在乙個物件。那麼想要保證物件唯一 1,為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件。2,還為了其他程式可以訪問到該類物件,只好在本類中...

黑馬程式設計師 java 單例設計模式

單例設計模式解決的問題 保證乙個類在記憶體中的物件唯一性。比如 多程式讀取乙個配置檔案時,建議配置檔案封裝成物件會方便操作其中資料。但需要保證多個程式讀到的是同乙個配置檔案物件,該配置檔案物件在記憶體中是唯一的。如何保證物件唯一性呢?思想以及步驟 1,不讓其他程式建立該類物件。私有化建構函式 2,在...

黑馬程式設計師 單例設計模式

asp.net android io開發s net培訓 期待與您交流!設計要求 1.只能被例項化一次。2.由自己建立例項。3.能向該類任意引用提供上述例項。方式一 餓漢式 class single public static single getinstance 方式二 懶漢式 class sing...