Skip to content

Latest commit

 

History

History

README.md

策略模式 Strategy Pattern

重點

策略模式用接口定義每個行為,並使用多個 Class 描述該行為的不同種類,讓他們之間可以互相替換,也能夠獨立運作。

筆記

  1. 找出變化之處,和不會變化的地方要分開。 例如例子裡面,鴨子都會游泳,但是叫聲不同、 ToyDuck 不應該會飛,但 MallardDuck 會。
  2. 要針對接口做處理,而不是那些實現行為的地方。
  3. 不要用繼承來完成所有行為,要學著用組合的方式處理不同行為。
  4. 範例中的飛行行為和叫聲行為都被封裝起來了。
  5. 利用繼承來提供行為會有幾個缺點:
    1. 代碼在多個子類別裡重複。
    2. 執行時行為不容易改變。
    3. 很難知道物件的全部行為。
    4. 牽一髮動全身,會讓其他繼承該類別的子類別都發生改變。

執行

  1. clone 到專案資料夾。
  2. 輸入 npm install 安裝套件。
  3. 輸入 npm run tscBuild 編譯 index.js 檔案。
  4. 輸入 node index.js 執行程式。
  5. 如果要編譯 exercise.ts ,要進入 package.json 中,將 index.ts 改為 exercise.ts