设计模式-之--策略模式

xiaoxiao2021-03-01  80

前言

稍后来补充,今天没时间了

代码

抽象接口(对修改封闭)

/** * @author tangxuejun * @version 2018/8/28 上午10:09 * 用策略模式实现计算器的基本运算 */ public interface Strategy { //抽象二元运算,两个入参,一个返回值 int calculate(int a, int b); }

具体实现类(对新增开放)

/** * @author tangxuejun * @version 2018/8/28 上午10:11 * 加法运算 */ public class Addtion implements Strategy { @Override public int calculate(int a, int b) { return a + b; } } /** * @author tangxuejun * @version 2018/8/28 上午10:13 * 减法运算 */ public class subtraction implements Strategy{ @Override public int calculate(int a, int b) { return a - b; } }

计算结果和不同策略的注入

/** * @author tangxuejun * @version 2018/8/28 上午10:13 * 计算方法 */ public class Calculate { private Strategy strategy; public Calculate(Strategy strategy) { this.strategy = strategy; } public int getResult(int a, int b) { return this.strategy.calculate(a, b); } }

测试方法

/** * @author tangxuejun * @version 2018/8/28 上午10:19 */ public class TestCalculate { @Test public void fun1() { //将加法策略传给计算器 Calculate add = new Calculate(new Addtion()); System.out.println(add.getResult(1, 2)); //将减法策略传给计算器 Calculate sub = new Calculate(new subtraction()); System.out.println(sub.getResult(3, 1)); } }
转载请注明原文地址: https://www.6miu.com/read-4150010.html

最新回复(0)