使用Java8的Lambda实现策略模式
策略Strategy模式是GoF设计模式中的一种。定义了一组算法,彼此封装,客户端调用能够独立地使用它们。在这里我们使用Java 8的Lambda表达式实现策略模式。
我们首先看看传统Java实现策略模式案例,假设一个接口为策略:
interface Strategy{
public void performTask();
}
这个策略有两个实现:
class LazyStratgey implements Strategy{
@Override
public void performTask() {
System.out.println("Perform task a day before deadline!");
}
}
class ActiveStratgey implements Strategy{
@Override
public void performTask() {
System.out.println("Perform task now!");
}
}
策略模式的调用:
public class StartegyPatternOldWay {
public static void main(String[] args) {
List strategies =
Arrays.asList(
new LazyStratgey(),
new ActiveS