1、建立性模式(建立物件)
(1)工廠方法模式
根據輸入的產品類別不同,工廠產生不同的產品。
main函式基本不變,擴充套件不同的產品。
(2)建造者模式
相同的構建過程(director),不同的表示(builder),只需要擴充套件表示即可。
例如汽車組裝過程一樣(director),但各個部件不一樣(builder)。
(3)原型模式
通過複製建構函式來clone乙個物件。
(4)單例模式
只產生乙個物件
2、結構性模式(處理類和物件的組合)
(1)介面卡模式
將乙個類的介面轉換成客戶期望的另乙個介面。adapter繼承target,將target的介面轉換成adaptee的介面。
(2)橋接模式
將抽象和實現分離,各自變化。抽象基類依賴於實現基類,成為橋接。
例如不同的視窗抽象基類。以及視窗實現基類,前者依賴於後者。避免繼承的**性。
(3)組合模式
組合多個物件形成樹形結構以表示整體部分的結構層次。
實現原理是葉子物件和容器物件都繼承基本元件,實現了組合模式。
(4)裝飾著模式
動態將責任附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更加有彈性的替代方法。
裝飾著(decorator)和物件繼承同乙個基類,裝飾著與基類為聚合關係,並靈活組裝物件。
(5)外觀模式
最簡單的模式,各個子系統作為facade的子類,由facade提供統一的介面對外。
(6)享元模式
類中包含最小力度物件的vector,以有效地支援大量細粒度物件的服用。
(7)**模式
給乙個物件提供乙個**,並由**物件控制對原物件的引用。
**和真正的物件繼承於同乙個基類,proxy依賴於realsubject,使用者只訪問proxy提供的介面。
設計模式小結
q 一定要設計模式嗎?a 設計是為了封閉變化,若是個專案確定以後不需要擴充套件,那麼隨便怎麼幹都行。若不是這樣,至少保證當前專案中會擴充套件的地方進行設計 q 簡單的例子 a mvc是最簡單的例子。把它發揚光大就不錯了。通常的做法是一定要把v分開,mc視情況而定。比如今天我們使用gui作為渲染,下乙...
設計模式小結
結構型行為型 include using namespace std class csingleton protected csingleton 過載賦值建構函式,但貌似是沒必要的,因為物件無法在外部先被建立 csingleton operator const csingleton other st...
設計模式小結
經過這段時間學習的設計模式,心中也算有了大概的感念 需要時常溫習 在學習的時候不是按照設計模式的分類一步步學的,我學的過程很佛性,點到 看 1 建立型模式 5種 工廠方法模式,抽象工廠模式,單例模式,建造者模式,原型模式。2 結構型模式 7種 介面卡模式,裝飾器模式,模式,外觀模式,橋接模式,組合模...