前言
稍后来补充,今天没时间了
代码
抽象接口(对修改封闭)
/**
* @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));
}
}