
商场促销——策略模式
在敲这个例子的时候,还是感觉类太多,有点不太适应,掌握了其中了逻辑之后就没这么复杂了。 正常收费、满减和打折都是继承了现金收费抽象类,在CashContext类中实例化了正常收费、满减和打折三个类,在客户端调用CashContext一个类,便实现了商场促销活动的功能。 策略模式是用来封装的,那在该例子中,他封装了正常收费、满减和打折三个类。
策略模式比简单工厂模式有什么优点?
1、减少了各种算法类与使用算法类之间的耦合。 比如简单工厂模式在客户端要认识两个类CashSuper和CashFactory,而策略模式与简单工厂结合的用法,客户端只需要认识一个类CashContext。
2、继承有助于析取出这些算法中的公共功能。 比如在Context类中获得计算费用的结果GetResult()。