2010年5月31日

Design Pattern概要筆記

最近在整理Design Pattern,整理了一些筆記

『什麼是 Pattern,看到蔡學鏞所寫的文章用很簡單的描述定義

  • 只要是一再重複出現的事物,就是 Pattern
  • 基本上,Pattern 就是一種公式化的表現。
  • 這些公式可以確保工程具備一定的品質,並加快工程的進行。
  • Pattern 就是一種「千錘百鍊」的智慧結晶。
  • OODObject-Oriented Design)階段所採用的 Pattern 就稱為 Design Pattern

  
設計模式有這麼多種,所以依照特性分成了三類: CreationalStructuralBehavioral

Creational : This design patterns is all about class instantiation. This pattern can be further divided into class-creation patterns and object-creational patterns.
While class-creation patterns use inheritance effectively in the instantiation process, object-creation patterns use delegation effectively to get the job done.

Structural : This design patterns is all about Class and Object composition.
Structural class-creation patterns use inheritance to compose interfaces.
Structural object-patterns define ways to compose objects to obtain new functionality.

Behavioral : This design patterns is all about Class's objects communication. Behavioral patterns are those patterns that are most specifically concerned with communication between objects.

* Creational
-Simple Factory
-Abstract Factory
-Factory Method
-Builder
-Prototype
-Singleton
-Registry of Singleton

* Structural
-Default Adapter
-Adapter
-Bridge
-Composite
-Decorator
-Facade
-Flyweight
-Proxy

* Behavioral
-Chain of Responsibility
-Command
-Iterator
-Strategy
-Template Method
-Observer
-Mediator
-State
-Memento
-Visitor
-Interpreter

Huston畫了一個仿化學元素週期表的設計方法,來呈現GOF23個設計模式,也許可以幫助你記憶。


每一個模式都應該要提供下列的資訊
名稱
設計模式的名稱
問題
在物件導向的系統設計過程中反覆出現的特定場合,而導致我們採用某個模式。
解決方案
上述問題的解決方案,其內容給出了設計的各個組成部分,它們之間的關係、職責劃分和協作方式。
別名
一個模式可以有超過一個以上的名稱,可在此說明。
動機
該模式應該利用在哪種情況下是本節提供的方案(包括問題與來龍去脈)的責任。
適用性
模式適用於哪些情況、模式的背景等等。
設計結構
這部分常用類圖與互動圖闡述此模式。
參與者
這部分提供一份本模式用到的類別物件清單,與它們在設計下扮演的角色
合作
描述在此模式下,類別與物件間的互動。
影響
採用該模式對軟體系統其他部分的影響,比如對系統的擴充性、可移植性的影響。
實作
影響也包括負面的影響。這部分應描述使用本模式後的結果、副作用、與權衡(trade-off)
範例
這部分應描述實現該模式、該模式的部分方案、實現該模式的可能技術、或者建議實現模式的方法。


英文的好像清楚一些~

各種Design Patter的目的

協助記憶Design Patterns

使用Design Patterns的情境


[相關參考資料]:

Design Pattern 新解

WikiPedia - Design pattern

梁葛格 - 設計模式

Design Patterns

Huston Design Patterns

對各種設計模式的介紹,分析等

OODesign.com