依據 GOF 的書,可以將經典的設計模式分為以下三類:生成、行為、結構。
有人可能會覺得裝飾者模式明明有替物件增加行為,為什麼不算是行為模式呢?我們可以從上面的結構模式得知,結構模式用來描述類別或物件如何被合成,以建立新的結構或功能。裝飾者模式允許你透過「將某物件包裝進另一個物件的方式」,將物件合成以提供新功能,因此焦點應該放在「動態合成物件,以取得某功能」,而不是物件之間的溝通。
- 生成模式:牽涉到將物件實體化。這類模式都提供一個方法,將客戶從所需要實體化的物件中鬆綁出來。
- 結構模式:讓你合成類別或物件到大型的結構。
- 行為模式:模述類別和物件如何互動,以及各自的責任。
設入淺出設計模式也有提到一些使用設計模式的思考模式:
- 保持簡單 (Keep It Simple):儘可能用簡單的方式解決問題。不要認為沒用設計模式就不是好設計,而是有時為了設計簡單而有彈性,需要使用設計模式。
- 設計模式非萬靈丹:需要考慮使用設計模式時,對其他部份造成的影響。
- 要知道何時需要設計模式:通常設計中需要改變的地方就需要採用設計模式。但加入模式是為了實際的改變,不是假定的改變。
- 重構的時間,就是模式的時間:重構 (Refactoring) 是個好時機,可以檢視你的設計,是否能利用設計模式讓它有更好的結構。
- 拿掉不需要的設計模式:當你的系統變得非常複雜,且不用預留任何彈性時,就可以拿掉模式。換句話說,就是有簡單的方案時,就可以不用設計模式。
- 現在不需要,就不用設計模式:有實際的需求去支援改變時再使用設計模式。因為採用設計模式,就有機會讓系統變複雜。
留言
張貼留言