《設計模式之禪》 單例擴充套件 多例模式

2022-07-14 23:30:31 字數 602 閱讀 4303

需求:乙個類只能產生兩三個物件

//傳入皇帝名稱,建立乙個皇帝物件

private

emperor(string name)

//隨機獲得乙個皇帝物件

public

static

emperor getinstance()

//皇帝發話了

public

static

void

say()

}

public

class

minister }}

執行結果如下

第1個大臣參拜的是:皇1帝

第2個大臣參拜的是:皇2帝

第3個大臣參拜的是:皇1帝

第4個大臣參拜的是:皇1帝

第5個大臣參拜的是:皇2帝

設計模式之單例設計模式,多例設計模式

所謂的單例設計模式就是指乙個類只允許產生乙個例項化物件。那麼如何保證乙個類只產生乙個例項化物件呢?我們都知道,所有的類都會預設生成乙個無參構造,這個無參構造外部可以隨意呼叫,如果我們要限制在外部產生物件,那麼就可以自己寫乙個私有的構造方法,這樣預設生成的無參構造將不再產生,這個時候再進行物件例項化的...

設計模式之禪 單例模式

優點 只有乙個例項,減少了記憶體開支,特別是當乙個物件需要頻繁地建立,銷毀時。缺點 單例模式沒有介面,擴充套件很困難,對測試也不利。上面的例子在併發的情況下,會有執行緒安全的問題出現。解決方法是在獲取singleton物件的方法上加上synchronized。public class mutilsi...

設計模式之禪 單例模式

想法1.不想要別人去建立我這個物件 建構函式private唄,別人看不到 2.既然別人不能建立,那我該如何獲取 靜態屬性?不,這個設計會我的 皇帝 給弄得面目全非了 class emperor emperor.hd null 破壞者一號 靜態常量?不,這個太壓抑了吧!class emperor em...