策略模式 Strategy Pattern 重點 策略模式用接口定義每個行為,並使用多個 Class 描述該行為的不同種類,讓他們之間可以互相替換,也能夠獨立運作。 筆記 找出變化之處,和不會變化的地方要分開。 例如例子裡面,鴨子都會游泳,但是叫聲不同、 ToyDuck 不應該會飛,但 MallardDuck 會。 要針對接口做處理,而不是那些實現行為的地方。 不要用繼承來完成所有行為,要學著用組合的方式處理不同行為。 範例中的飛行行為和叫聲行為都被封裝起來了。 利用繼承來提供行為會有幾個缺點: 代碼在多個子類別裡重複。 執行時行為不容易改變。 很難知道物件的全部行為。 牽一髮動全身,會讓其他繼承該類別的子類別都發生改變。 執行 clone 到專案資料夾。 輸入 npm install 安裝套件。 輸入 npm run tscBuild 編譯 index.js 檔案。 輸入 node index.js 執行程式。 如果要編譯 exercise.ts ,要進入 package.json 中,將 index.ts 改為 exercise.ts 。