設計一個商場打折計費的軟件,能夠實現打折,滿300送100等優惠功能。算法
咱們先把4個計算的類寫出來。單元測試
在寫負責建立對象和調用的CashCoxt類測試
最後調用的代碼:優化
咱們客戶端的代碼只用到了CashContext類,下降了耦合。 而策略模式的精髓在於:完成同一個功能有不一樣的算法時,咱們把他抽象到父類。而後每個功能都由對應的子類來實現。 再用一箇中間類爲咱們建立對象,調用方法。設計
這樣的2點好處: 對象
一、減小了各類算法類之間的耦合。blog
二、優化了單元測試。軟件
策略模式就是用來封裝算法的,當咱們實踐中某一個功能有多種實現的算法。咱們就能夠考慮使用策略模式。方法