- 定义一系列算法,把他们封装起来,并且使他们可以相互替换
- 提高程序的扩展性,在需要新增加对应的策略的时候,可以直接实现对应接口即可,另外一方面可以将程序中,业务部分和算法部分分离开使程序更加具有条理。
import java.util.function.Function;
public class StageModel {
public void doSomething(Integer index){
try {
Function function = (Function) Class.forName("Stage"+index).newInstance();
function.apply(new Object());
}catch (Exception e){
e.printStackTrace();
}
}
}
public class Stage1 implements Function {
@Override
public Object apply(Object o) {
System.out.println("执行策略1");
return null;
}
}
public class Stage2 implements Function {
@Override
public Object apply(Object o) {
System.out.println("执行策略2");
return null;
}
}