OO-2

最後編輯:2019-01-08 建立:2016-04-15 歷史紀錄

ERIC Y角色結構 :

Model : Structural

client component composite Leaf

星月現象個別類別 Leaf 和組合類別 Composite 都繼承 Component

 

    Define:

  • ERIC Y數個物件組成樹狀結構表示"部分與整體",客戶對單個物件和組合物件使用方式一致。

    星月現象違反原則:

  • 依賴倒置(Component為abstract)

 

    ERIC YStrategy

ERIC Y角色結構 :

Model : Behavioral

client context物件 Stategy行為

一個物件可以有多個行為

每個行為都有不同的狀態

根據物件不同的狀態切換不同的行為

 

    星月現象Define:

  • ERIC Y定義一組演算法,個別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變動,
  • 不會影響到使用演算法的程式。
  • 星月現象

 

    ERIC YIterator

ERIC Y角色結構 :

Model : Behavioral

Aggregate集合體 Client Iterator依序掃描元素的介面

 

    星月現象Define:

  • ERIC Y取得容器內的每個元素,不需將此容器原本實踐暴露出來。

 

ERIC Y角色結構 :

Model : Behavioral

Visitor Client

Visitor Pattern 把 資料結構 和 處理 兩者分開,另外寫一個表示在資料結構內穿梭來去的主體 訪客 的類別,然後把處理交給這個類別來進行。如此一來,如果想追加新的處理動作時,只要再建立一個新的訪客即可。而在資料結構這邊,也只要能接受來敲門的訪客就能完成動作。

 

    星月現象Define:

  • 在不改變物件結構得前提下,將內部操作提煉成物件使客戶定義的新操作。

 

    ERIC YMemento

ERIC Y角色結構 :

Model : Behavioral

Client 備忘錄 備忘錄管理者

 

    星月現象Define:

  • 在不破壞封裝的情況下保存及恢復物件的內部狀態。

 

    ERIC YAbstract Factory

ERIC Y角色結構 :

Model : Creational

client abstractFactory concreteFactory abstractProduct concreteProduct

 

    星月現象Define:

  • 為創建一組相關或互相依賴的物件提供介面,無需指定具體類別。

    違反原則:

  • 開放封閉,類別會隨著產品而增加方法,也就是說需要修改類別。

 

 

    ERIC YBuilder

ERIC Y角色結構 :

Model : Creational

client builder director

把process 跟 step 分開所以他們就可以有彈性的組合在一起??

封裝一個產品的建構過程,並允許可依照步驟建構

 

    星月現象Define:

  • 將複雜的物件的建構與表示分離,使同樣建構過程可創建不同表示。