單例模式(皇后和皇上的故事)

2021-08-07 21:11:22 字數 1188 閱讀 9956

0x00 前言

朕雖花心,卻深明事理。一山不容二虎,一國不容二母!因此不論朕有多少愛妃(我是逗逼啊,怎麼可能還有愛妃,乙個皇后就夠了!),但是朕的皇后只有乙個,這點毋庸置疑。

那麼如何來體現朕的皇后的唯一性呢?就是單例模式了!

0x01 宮女請安

在朕的後宮中,皇后當之無愧的是天下第一(朕只能當第二),為了彰顯皇后在後宮的地位,每日早晨,宮女必須向皇后娘娘請安。

一大群宮女每天都要來向皇后請安,皇后每天也要接見這群小妹妹們。由於皇后的唯一性,眾妹妹在請安的時候都會大呼「皇后娘娘千歲!」,注意,大家稱呼的是皇后娘娘,而不是張皇后、李皇后什麼的。天天向乙個皇后請安,也就不會把自己弄迷糊了。這點在設計領域中就要求,乙個類只能生成乙個物件。

那麼怎麼來實現呢?物件的產生是通過new關鍵字完成的(這是主要方式),這個怎麼來控制呢?建構函式!在使用new關鍵字建立物件的時候,都會根據輸入引數呼叫相應的建構函式,如果我們把皇后的建構函式設定成private私有訪問許可權是不是就可以禁止外部建立物件了?

下圖就是宮女向唯一的皇后請安的過程。

例子

只有兩個類:queen代表皇后,maid代表宮女。

public

class queen

public

static queen getinstance()

public

static

void

say()

}

public

class maid

}}

執行結果:

今天是第 1 天請安!

本宮是yyj,爾等跪安吧~

今天是第 2 天請安!

本宮是yyj,爾等跪安吧~

今天是第 3 天請安!

本宮是yyj,爾等跪安吧~

宮女每天向皇后請安,每天抬頭一看,呦,老熟人了,還是昨天那個皇后,這就是單例模式!

1.概念

單例模式(singleton pattern)是乙個比較簡單的模式,其定義如下:

ensure a class has only one instance, and provide a global point of access to it.(確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。)

懶漢單例模式 和 餓漢單例模式

單例模式 是一種常用的軟體設計模式,在它的核心結構中值包含乙個被稱為單例的特殊類。乙個類只有乙個例項,即乙個類只有乙個物件例項。餓漢單例模式 public class singletondemo5 private singletondemo5 public static final singleto...

設計模式 單例模式 餓漢式單例和懶漢式單例

單例模式 singleton pattern 乙個在設計模式中比較簡單的模式,我們常說的餓漢式和懶漢式是最常舉例的兩種寫法。如下餓漢式 public class singleton 獲取例項物件 public static singleton getsingleton 懶漢式 public clas...

單例模式和工廠模式

實現思路 將構造方法私有化 宣告本類型別的靜態私有屬性 提供共有靜態方法獲取 本類物件 class static x new public static get class static x null public static get 優點 缺點 產品介面 public inte ce produ...