进阶学习(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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值