在上篇文章中,我們將各個物流商的物件,抽象化出來一個物流商的介面,這個介面提供了當下頁面物件所需要的功能:
1. 計算運費
2. 取得運費結果
3. 取得物流商名稱
雖然頁面物件仍與物流商物件直接相依,但在context端已經是「使用介面」,而不管各物流商物件背後的實作了。
這篇文章,標題雖然帶著「Strategy Pattern」,也就是策略模式,但不熟Design Patterns的讀者朋友不用擔心,保持著心中無招即可。我們只需要把程式碼的壞味道用最自然的方式重構,您就會體會到Strategy Pattern的樣子、目的、用法,Strategy Pattern將會自動的浮現出來。
記得,雖是心中無招,但仍有心法,也就是OO的SOLID原則,是我們重構的底限。
只是重構一個判斷式,把一樣的東西留著,不一樣的東西抽成function,我想...3分鐘應該還是很夠用了
上一篇文章:[Day 16]Refactoring - 介面導向
本系列文章專區
PS: 拖著殘廢的右手(肩旋轉袖肌腱炎),手抬不起來也要把鍵盤放在大腿上,硬生生把這一篇文章寫完...真心希望對各位讀者在開發上可以有所幫助。
1. 計算運費
2. 取得運費結果
3. 取得物流商名稱
雖然頁面物件仍與物流商物件直接相依,但在context端已經是「使用介面」,而不管各物流商物件背後的實作了。
這篇文章,標題雖然帶著「Strategy Pattern」,也就是策略模式,但不熟Design Patterns的讀者朋友不用擔心,保持著心中無招即可。我們只需要把程式碼的壞味道用最自然的方式重構,您就會體會到Strategy Pattern的樣子、目的、用法,Strategy Pattern將會自動的浮現出來。
記得,雖是心中無招,但仍有心法,也就是OO的SOLID原則,是我們重構的底限。
只是重構一個判斷式,把一樣的東西留著,不一樣的東西抽成function,我想...3分鐘應該還是很夠用了
上一篇文章:[Day 16]Refactoring - 介面導向
本系列文章專區
PS: 拖著殘廢的右手(肩旋轉袖肌腱炎),手抬不起來也要把鍵盤放在大腿上,硬生生把這一篇文章寫完...真心希望對各位讀者在開發上可以有所幫助。