进阶学习(3.14) Strategy Pattern 策略模式

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

 

你可能感兴趣的:(设计模式,学习资料,JAVA,设计模式)