策略模式
是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则
,只要在分析过程中听到需要在不同时间应用不同的业务规则
,就可以考虑使用策略模式处理这种变化的可能性。
商场促销的简单工厂模式实现
商场促销的策略模式实现
商场促销的策略模式+简单工厂实现
- 优点:可以在Main中把收费类型做成配置项,或者数据库字典,把所有策略做成一个单独模块,Main只需要调用模块接口,充分解耦。
- 缺点:这样还是有点不爽,因为在CashContext中用到了switch,也就是说如果增加一种算法,就必须修改这个switch代码。
- 所以后面考虑用反射技术继续优化这个实现。