1, 什么是策略模式
1.1 未达到预期目的的各种应对方案
1.2 程序代码中的每一个分支都可以称之为策略, 而策略模式,则是将行为划分到具体类, 使用类对象区分行为
2, 优缺点
2.1 减少IF语法使用, 封装代码, 更便于维护
2.2 需要更加良好的约定协议, 否则IF语句还是少不了的, 就比如如何生成不同的具体策略, 没有约定的话, IF一个都少不了
2.3 策略类的增多, 多个IF ELSE, 优化后的策略类将会更多
3, 上代码
public abstract class IStrategy {
protected String name;
// 策略抽象商品列表
public abstract String productList();
}
public class StrategyA extends IStrategy {
@Override
public String productList() {
return "香奈儿xxx";
}
}
public class StrategyB extends IStrategy {
@Override
public String productList() {
return "兰蔻xxx";
}
}
public interface IExecute {
// 抽象执行者, 购物, 使用何种策略就行购物
void shoppping(IStrategy strategy);
}
public class Execute implements IExecute {
@Override
public void shoppping(IStrategy strategy) {
System.out.println("策略:" + strategy.name + "||" + strategy.productList());
}
}
public class Main {
public static void main(String[] args) {
IStrategy a = new StrategyA();
a.name = "A计划";
IStrategy b = new StrategyB();
b.name = "B计划";
IExecute execute = new Execute();
execute.shoppping(a);
execute.shoppping(b);
}
}
//=================================
策略:A计划||香奈儿xxx
策略:B计划||兰蔻xxx
Process finished with exit code 0