設計乙個商場打折計費的軟體,可以實現打折,滿300送100等優惠功能。
我們先把4個計算的類寫出來。
view code
在寫負責建立物件和呼叫的cashcoxt類
view code
最後呼叫的**:
view code
我們客戶端的**只用到了cashcontext類,降低了耦合。 而策略模式的精髓在於:完成同乙個功能有不同的演算法時,我們把他抽象到父類。然後每乙個功能都由對應的子類來實現。 再用乙個中間類為我們建立物件,呼叫方法。
這樣的2點好處:
1、減少了各種演算法類之間的耦合。
2、優化了單元測試。
策略模式就是用來封裝演算法的,當我們實踐中某乙個功能有多種實現的演算法。我們就可以考慮使用策略模式。
設計模式 策略模式 2
設計模式,先說設計模式吧,對於設計模式而言,這裡邊把事物具體抽象出來,就剩下什麼了?就剩下 如何用乙個良好的結構儲存資料?然後如何用乙個擴充套件性強,可維護性高的操作,來實現這些資料的操作與控制 好了,感言說完了,接下來就是,聊一聊設計模式中的 策略模式!對於策略模式而言,有乙個比較好的例子,那就是...
2 設計模式 策略模式
定義 它定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會直接影響到用演算法的客戶。模式分析 策略模式是一種定義一系列演算法的模式,完成的工作相同,只是由於實現不同,所以以相同的方式呼叫,減少了各種演算法類與使用演算法類之間的耦合。策略模式可以封裝任何型別的規則,實踐...
設計模式2 策略模式
abstract class strategypublic class concretestrategya extends strategy public class concretestrategyb extends strategy public class concretestrategyc ...