策略模式
策略模式能在运行时改变程序的算法行为。
例子:定义一个策略接口,计算2个数。根据不同实现算法,可以进行四则运算(完整代码见右边代码区)。
public class Test {
public static void main(String[] args) {
Context context = new Context(new OperationAdd());
System.out.println("1 + 1 = " + context.calculate(1,1));
context = new Context(new OperationSubstract());
System.out.println("1 - 1 = " +context.calculate(1,1));
}
}
使用Lambda表达式或者方法引用可以去掉样板代码。在这里可以去掉具体的策略实现。
Context context = new Context((x,y)-> x + y);
System.out.println(context.calculate(1,1));
输出结果:
用Lambda表达式改写例子,实现减法,乘法,除法运算。