Desing Pattern–Overview
Design Pattern:
如果發現處於某種情境下,面對著一群限制的問題,正影響著所欲達成的目標,然而,你能夠採用某個設計,克服這些限制並達到該目標,將你領向某個解決方案。
問題
情境
解決方案
模式是一種被證實過的設計經驗,可以避免某些常見的錯誤。
模式是共通詞彙,能夠讓我們和其他開發者之間,針對設計進行溝通。
第一種
生成:
生成模式牽涉到將物體實體化,這類模式都提供一個方法,將客戶從所需要實體化的物件中鬆綁出來。
Singleton
Builder
Prototype
Abstract Factory
Factory Method
行為:
它的重點都在於類別和物件如何互動,以及各自的責任。
Mediator
Visitor
Iterator
Template Method
Command
Memento
Interpreter
Observer
Chain of Responsibility
State
Strategy
結構:
讓你合成類別或物件到大型的結構。
Decorator
Composite
Proxy
Facade
Bridge
Flyweight
Adapter
第二種
類別:
會描述類別之間的關係如何透過繼承定義。在編譯時期就建立好的。
Template Method
Factory Method
Adapter
Interpreter
物件:
定義物件之間的關係,而且物件模式的關係正常是在執行期建立的,而且更動態、更有彈性。
Composite
Decorator
Proxy
Strategy
Bridge
Flyweight
Abstract Factory
Singleton
Builder
Prototype
State
Mediator
Chain of Responsibility
Facade
Command
Visitor
Interator
Observer
Memento
Command
用模式思考:
1.保持簡單 Keep It Simple
設計簡單且有彈性,有時候需要使用設計模式或是完全不需要模式。
2.設計模式非萬靈丹(模式可依專案修改,沒有絕對)
3.知道何時需要模式
加入模式是要因應實際的改變,而不是假定的改變。
4.重構的時間,就是模式時間
重新檢視你的設計是否能夠利用模式讓他擁有更好的結構。