Strategy Pattern 是 OOP 中最著名的 Design Pattern,幾乎可以說是 OOP 中 『解耦合』最經典的應用,F# 既然是 Function First Language,就讓我們以 function 的角度重新思考什麼是 『解耦合』。
點燈坊
念念不忘,必有迴響。有一口氣,點一盞燈,有燈就有人。
Strategy Pattern 是 OOP 中最著名的 Design Pattern,幾乎可以說是 OOP 中使用 interface 最經典的應用,隨著 FP 逐漸受到重視,Strategy Pattern 在實作上也有了新的面貌。
泛型 是物件導向 多型 的延伸技術,多型是以 interface 為基礎,在 執行時期 決定適當型別;而泛型則是以 type parameter 為基礎,在 編譯時期 決定適當型別。
泛型也是 TypeScript 的一大特色,預計 ECMAScript 將來也不會採用泛型。
將實質上不同的型別,在邏輯上看成相同的型別。如 function 可能回傳 int 或 bool 兩種型別,可為此 function 特別建立 IntOrBool 型別,同時包含 int 與 bool,這就是 Discriminated Union,簡稱 union。
若說 tuple 是將不同型別加以 AND,則 union 是將不同型別加以 OR。



