===============
1、何时使用
对于业务开发来说,业务逻辑的复杂是必然的,随着业务发展,需求只会越来越复杂,为了考虑到各种各样的情况,代码中不可避免的会出现很多if-else。
一旦代码中if-else过多,就会大大的影响其可读性和可维护性,而且代码显得很low。
策略模式完美的解决了ifelse的烦恼!
2、方法
将这些算法封装成一个一个的类,任意的替换
3、应用实例
-
出行方式,自行车、汽车等,每一种出行方式都是一个策略
-
商场促销方式,打折、满减等
-
java AWT中 LayoutManager ,即布局管理器
4、注意事项
如果一个系统的策略多于四个,就需要考虑使用混合模式解决策略类膨胀的问题
四、代码实例
==========
下面就以商场促销为例使用策略模式实现商场促销算法。UML图如下:
1、上下文类
首先声明一个 CashSuper 对象,通过构造方法,传入具体的收费策略, getResult() 方法的功能为根据收费策略的不同获取计算结果。
package designMode.strategy;
public class CashContext {
private CashSuper cashSuper;
public CashContext(CashSuper cashSuper) {
this.cashSuper = cashSuper;