7.2 Replace Conditional Logic with Strategy
當函式內有太多條件邏輯控制某一工作的各種變異中的哪一個被執行
可以把每個變異建立起一個Strategy ,然後將函式的計算工作委託給strategy
+ 透過減少或移除條件邏輯的方式來淨化演算法
+ 把演算法的變異移給一個繼承體系,用以簡化class
+ 讓一個演算法德已在執行期換為另一個演算法
- 會讓設計變得複雜 - 當以繼承為基礎的解法 或來自Simplifying Conditional Expression 的重構手法較為簡單時
- 會讓 演換法從其context class中取資料 的方式變得複雜
沒有留言:
張貼留言