跟刺蝟哥一起學習設計模式 Singleton模式

2022-05-13 15:09:07 字數 1007 閱讀 6612

設計模式的分類

從目的來看:

建立型模式:負責物件建立

結構性模式:處理類與物件間的組合

行為型模式:類與物件互動中的職責分配

從範圍來看:

類模式處理類與子類的靜態關係

物件模式處理物件間的動態關係

動機在軟體系統中,經常有這樣的一些特殊的類,必須保證它們在系統中只存在乙個例項,才能確保它們的邏輯正確性以及良好的效率。

如何繞過常規的構造器,提供一種機制來保證乙個類只有乙個例項呢?其實這應該是類設計者的責任,而不是使用者的責任。

意圖保證乙個類僅有乙個例項,並提供乙個該例項的全域性訪問點。  -----《設計模式》 gof

單執行緒singleton 模式實現

public

class

singleton

public

static

singleton instance

return

instance;}}

}

單執行緒singleton模式有以下幾個要點:

singleton模式中的例項構造器可以設定為protected以允許子類派生。

singleton模式一般不要支援icloneable介面,因為這可能會導致多個物件例項,與模式初衷違背。

singleton模式一般不要支援序列化,因為這也有可能導致多個物件例項,與初衷違背。

singleton模式只考慮了物件建立的管理,沒有考慮物件銷毀的管理。就支援垃圾**的平台和物件的開銷來講,一般沒有必要對其銷毀進行特護的管理。

不能應對多執行緒環境,在多執行緒環境下,使用可能得到多個例項物件。

二、多執行緒下的singleton模式

public

class

singleton

public

static

singleton instance()}}

return

_instance;

}}

一起學設計模式 組合模式

組合模式 composite pattern 屬於結構型模式的一種,組合多個物件形成樹形結構來表示部分 整體的結構層次,對單個物件 葉子物件 和組合物件 容器物件 的使用具有一致性 組合模式對單個物件 葉子物件 和組合物件 容器物件 具有一致性,它將物件組織到樹結構中,可以用來描述整體與部分的關係。...

一起學設計模式 外觀模式

外觀模式 facade pattern 屬於結構型模式的一種,為子系統中的一組介面提供乙個統一的入口,它通過引入乙個外觀角色來簡化客戶端與子系統之間的互動.外觀模式是一種使用頻率非常高的結構型設計模式,當你要為乙個複雜子系統提供乙個簡單介面時。子系統往往因為不斷演化而變得越來越複雜。大多數模式使用時...

跟阿彩一起學習Python(六)

總結分享是我學習的最大動力。python 的元組與列表類似。從語法格式的角度,元組使用小括號 列表使用方括號 而兩者最大的不同之處在於元組的元素不能修改。回顧一下列表的語法,並和元組對比一下。列表 演示 listex daguai xiaoguai aoliao 25 true print list...