Desing Pattern–Overview

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.重構的時間,就是模式時間

重新檢視你的設計是否能夠利用模式讓他擁有更好的結構。

5.拿掉不需要的設計模式

6.現在不需要就不做