設計模式讀書筆記

2021-06-29 00:14:31 字數 1126 閱讀 3187

設計模式

「就乙個類而言,應該僅有乙個引起它變化的原因。」

「如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或者抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受意想不到的破壞。」

「對於擴充套件是開放的,對於更改是封閉的。」

「無論模組是多麼的『封閉』,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪種變化封閉做出選擇。他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離那些變化。」

「針對介面程式設計,不要對實現程式設計。」

「子型別必須能夠替換掉它們的父型別。」

由於子型別的可替換性才似的使用父類型別的模組在無需修改的情況下就可以擴充套件。

一言以蔽之,簡單工廠幹的就是個根據引數構造類的活。

可見性:使用者需要知道抽象基類和工廠類/函式。

class ievent ;

class eventa : public ievent ;

class eventb : public ievent ;

ievent *createevent(type)

};

策略模式本身比較像基於介面程式設計。比如

class ceventdispatcher 

};

如果與上面簡單工廠模式相結合,可讓使用者不關心抽象基類,只需要知道策略的上下文類context。

裝飾模式是為了避免直接往已有的類中新增功能,而把功能放在子類中。並且子類提供和基類相同的介面。

可見性:裝飾類和被裝飾類。

class ccomponent 

};class cdecorator

void dosomething()

}private:

ccomponent *m_pbase;

};class cdecoratora : public cdecorator

};

常用於下面四種情況:

將工廠讓使用者來例項化,對於簡單類來說,個人覺得不一定比依賴實現程式設計更爽。

設計模式讀書筆記 外觀模式

講的是如何將乙個介面轉換成客戶所需要的另乙個接 口,它的目的在於 解決介面的不相容性問題。現在這裡有這樣乙個模式,它的目的在於如何簡化介面,它可以將多個 類的複雜的一切隱藏在背後,只顯露 出乙個乾淨美觀的外觀。晚上睡覺之前,你總是喜歡看電視,在你進入臥室的時候你需要完成以下幾個步驟 開啟電燈 開啟空...

設計模式讀書筆記 6

decorator 模式 名稱 裝飾模式,包裝模式 問題 需要擴充套件乙個類的功能,或者給以各類增加附加職責 需要動態給乙個物件增加功能,這些功能可能動態撤銷 需要增加基本功能的排列組合產生非常大量的功能,從而使得繼承關係變得不現實。例如 乙個圖形介面工具箱允許你對一些使用者介面元素增加一些特性 例...

設計模式讀書筆記(2)

builder 生成器模式 名稱 也叫建造模式 生成器模式 問題 通常產品是由多個零件組成的,不同的產品,組成零件不一樣,組裝方式也不一樣。假設乙個產品,由 2部分組成 至於如何組成,可能隨著技術發展,會不一樣 另外的產品,有 3個部分組成,我們需要建立這些產品,如何做到完美實現呢?解決 這樣,我們...