設計模式小結

2021-06-26 07:47:57 字數 927 閱讀 5645

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種 介面卡模式,裝飾器模式,模式,外觀模式,橋接模式,組合模...