侧边栏壁纸
博主头像
Elltor

用心发现生活,积极面对工作、事,坚持每天让自己进步一点。

  • 累计撰写 169 篇文章
  • 累计创建 1 个标签
  • 累计收到 12 条评论
标签搜索

目 录CONTENT

文章目录

设计模式|策略模式

Elltor
2020-10-30 / 0 评论 / 0 点赞 / 123 阅读 / 745 字 / 正在检测是否收录...

策略模式定义了算法家族, 分别封装起来, 让他们之间可以相互替换, 此模式让算法的变化影响到使用的客户。

代码

public interface Strategy {
    void Algorithm();
}
public class StrategyA implements Strategy {
    @Override
    public void Algorithm() {
        System.out.println("使用了StrategyA的算法");
    }
}
public class StrategyB implements Strategy{
    @Override
    public void Algorithm() {
        System.out.println("使用了StrategyB的算法");
    }
}
public class Context{
    Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public void contextOperate(){
        this.strategy.Algorithm();
    }
}
public class Main {
    public static void main(String[] args) {
        Context context;
        context = new Context(new StrategyA());
        context.contextOperate();

        context = new Context(new StrategyB());
        context.contextOperate();
    }
}

策略模式其实就是一个计划, 通过执行这个计划, 我们在既定的输入下给出特定的输出。

策略通常可以表达为一组方案(也可以理解为一组算法), 这些方案之间可以相互替换.

0

评论区