DesignPatterns
1. 關於 Strategy
2. UML
3. 將 UML 轉為程式碼
4. 情境
OS:Windows 10
IDE:Visual Studio 2019
Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
by Gang of Four
Strategy(策略)屬於行為型(Behavioral Patterns),當遇到一段程式其中有部分邏輯可由外部指定 時,可藉由 Strategy 將邏輯拆分成獨立 class,之後新增邏輯時只需新增 Strategy 實作即可。
優點:
缺點:
Class 間關聯:
Class:
策略介面
策略實作 A
策略實作 B
策略實作 C
使用演算法的物件
context
並指定策略實作 A / B / C執行結果
我們接到了一個使用者在線上商城可自行選擇折扣方案的需求
策略介面
策略實作,拆分各種計算結帳金額邏輯
依據使用者選擇折扣計算結帳金額
context
並選定折扣執行結果
GitHub:Behavioral_09_Strategy