[Design Pattern] STATE 模式

我們就以工程師的一天:Eat、Coding、Sleep 三種狀態,來示範 STATE 模式
STATE 模式是由以下三個部分組成:

  1. Context:用來控制所有的狀態,其會是與客戶端的接口,客戶端只會與 Context 互動
  2. State:定義各個狀態的抽象方法,ConcreteState 會繼承 State 並實作其方法
  3. ConcreteState:Eat、Coding、Sleep,三種狀態的實作
Read more

[Design Pattern] Visitor 模式 (三)

Visitor 模式可以再不改變現有類別結構的情況下,像類別結構增加新方法。另一個可以達到相同目的的模式是 Decorator 模式。

想像假設要實作一個方法,乘客要下車時需要按下車鈴通知司機。如果將該方法宣告在介面中,並讓各個類別實作,這樣也不是不行,但是如果之後有更多需求,就會變得需要頻繁異動該類別。

所以可以這樣想:讓有該需求的使用者去呼叫實作該需求的類別即可,即我實作一個「下車按鈴」的類別,讓公車類別來使用,如果交通工具是機車的話就不會使用到該類別。

Read more