2008年3月27日 星期四

M21 彈性地擁有Method與Data──再看Design Pattern

有專家歸納出目前常用的Design Pattern共有23個,各位仔細觀察的話會發現裡頭用UML描述的全是Interface與Class。實際上做事的是Method,擁有資訊的是Data,但是這兩者並不會被直接拿來定義Design Pattern,而且群組化Method與Data的Class;如果這個事實還無法令人想更加改善Class的設計,我也無話可說。

Design Pattern用另一個說法來看的話,可以說是設計者想根據某種用途彈性取得Method與Data的設計,內部的作法是經過許多次實現而得到的最佳經驗值。取得與置換資源的方式有很多種,Design Pattern由於有很多人改善過將會是比較理想的作法;將之視為非做不可的設計而大量使用倒也不必。

Design Pattern的應用有三個分類,下面是所有Design Pattern與其分類;詳細的作法請另外參考專門的介紹。

生成模式(Creational Patterns),Class生成時可依其生成模式選用。包含有Abstract Factory、Builder、Factory、Prototype與Singleton五種。

結構模式(Tructural Patterns),為特殊的目的在結構方式安排Class的關係。包含有Adapter、Bridge、Composite、Facade、Flyweight與Proxy六種。

行為模式(Behavioral Patterns),為了達到指定的功能而將Class再拆解為更小單位,並依其關係結合成形。包含有Chain of Responsibility、Command、Interpreter、Iterator、Mediator、Memento、Observer、State、Strategy、Template Method與Visitor。

沒有留言:

張貼留言