單例模式(1)

2021-10-04 17:02:18 字數 1389 閱讀 7497

定義:確保乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。

型別:建立類模式

類圖:

類圖知識點:

1.類圖分為三部分,依次是類名、屬性、方法

2.以《開頭和以》結尾的為注釋資訊

3.修飾符+代表public,-代表private,#代表protected,什麼都沒有代表包可見。

4.帶下劃線的屬性或方法代表是靜態的。

5.對類圖中物件的關係不熟悉的朋友可以參考文章:設計模式中類的關係

單例模式應該是23種設計模式中最簡單的一種模式了。它有以下幾個要素:

單例模式根據例項化物件時機的不同分為兩種:一種是餓漢式單例,一種是懶漢式單例。餓漢式單例在單例類被載入時候,就例項化乙個物件交給自己的引用;而懶漢式在呼叫取得例項方法的時候才會例項化物件。**如下:

餓漢式單例

public class singleton public static singleton getinstance() } 1

2

3

4

5

6

7

publicclasssingleton

publicstaticsingleton getinstance()

} 懶漢式單例

public class singleton public static synchronized singleton getinstance() return singleton; } } 1

2

3

4

5

6

7

8

9

10

11

publicclasssingleton

publicstaticsynchronizedsingleton getinstance()

returnsingleton;}}

單例模式的優點:

適用場景:由於單例模式的以上優點,所以是程式設計中用的比較多的一種設計模式。我總結了一下我所知道的適合使用單例模式的場景:

單例模式注意事項:

1 單例模式

乙個類只能有乙個例項。比如印表機這種東西。trick在於 變數,構造方法都必須為private,所以其他類new它的構造方法是不行的,直接呼叫變數也不行。只能呼叫getinstance 方法 其他被public修飾的方法。getinstance 方法記得用public修飾。原理 public cla...

1 單例模式

某個物件只需要乙個例項的情況,比方說gamemanager,resourcemanagerusing system namespace 單例模式 定義公有方法提供乙個全域性訪問點,同時你也可以定義公有屬性來提供全域性訪問點 public static singleton getinstance 構造...

單例模式1

1 餓漢式 author version 0.1 單例模式 餓漢式 建立時進行例項化 1 私有化構造方法 2 建立私有例項 static 3 建立公共類方法 static 方法輸出單例 public class singleton5 公共方法 public static singleton5 get...