設計模式的分類
從目的來看:
建立型模式:負責物件建立
結構性模式:處理類與物件間的組合
行為型模式:類與物件互動中的職責分配
從範圍來看:
類模式處理類與子類的靜態關係
物件模式處理物件間的動態關係
動機在軟體系統中,經常有這樣的一些特殊的類,必須保證它們在系統中只存在乙個例項,才能確保它們的邏輯正確性以及良好的效率。
如何繞過常規的構造器,提供一種機制來保證乙個類只有乙個例項呢?其實這應該是類設計者的責任,而不是使用者的責任。
意圖保證乙個類僅有乙個例項,並提供乙個該例項的全域性訪問點。 -----《設計模式》 gof
單執行緒singleton 模式實現
publicclass
singleton
public
static
singleton instance
return
instance;}}
}
單執行緒singleton模式有以下幾個要點:
singleton模式中的例項構造器可以設定為protected以允許子類派生。
singleton模式一般不要支援icloneable介面,因為這可能會導致多個物件例項,與模式初衷違背。
singleton模式一般不要支援序列化,因為這也有可能導致多個物件例項,與初衷違背。
singleton模式只考慮了物件建立的管理,沒有考慮物件銷毀的管理。就支援垃圾**的平台和物件的開銷來講,一般沒有必要對其銷毀進行特護的管理。
不能應對多執行緒環境,在多執行緒環境下,使用可能得到多個例項物件。
二、多執行緒下的singleton模式
publicclass
singleton
public
static
singleton instance()}}
return
_instance;
}}
一起學設計模式 組合模式
組合模式 composite pattern 屬於結構型模式的一種,組合多個物件形成樹形結構來表示部分 整體的結構層次,對單個物件 葉子物件 和組合物件 容器物件 的使用具有一致性 組合模式對單個物件 葉子物件 和組合物件 容器物件 具有一致性,它將物件組織到樹結構中,可以用來描述整體與部分的關係。...
一起學設計模式 外觀模式
外觀模式 facade pattern 屬於結構型模式的一種,為子系統中的一組介面提供乙個統一的入口,它通過引入乙個外觀角色來簡化客戶端與子系統之間的互動.外觀模式是一種使用頻率非常高的結構型設計模式,當你要為乙個複雜子系統提供乙個簡單介面時。子系統往往因為不斷演化而變得越來越複雜。大多數模式使用時...
跟阿彩一起學習Python(六)
總結分享是我學習的最大動力。python 的元組與列表類似。從語法格式的角度,元組使用小括號 列表使用方括號 而兩者最大的不同之處在於元組的元素不能修改。回顧一下列表的語法,並和元組對比一下。列表 演示 listex daguai xiaoguai aoliao 25 true print list...