1. 程式人生 > >設計模式筆記2:策略模式

設計模式筆記2:策略模式

把他 客戶端 mage 調用 ges view 優惠 軟件 代碼

1.1 需求

  設計一個商場打折計費的軟件,可以實現打折,滿300送100等優惠功能。

1.2 類圖

  技術分享

1.3  實現

  我們先把4個計算的類寫出來。

技術分享 View Code

  在寫負責創建對象和調用的CashCoxt類

技術分享 View Code

  

  最後調用的代碼:

技術分享 View Code

1.4  總結

  我們客戶端的代碼只用到了CashContext類,降低了耦合。 而策略模式的精髓在於:完成同一個功能有不同的算法時,我們把他抽象到父類。然後每一個功能都由對應的子類來實現。 再用一個中間類為我們創建對象,調用方法。

  這樣的2點好處:  

    1、減少了各種算法類之間的耦合。

    2、優化了單元測試。

  策略模式就是用來封裝算法的,當我們實踐中某一個功能有多種實現的算法。我們就可以考慮使用策略模式。

設計模式筆記2:策略模式