Skip to content

Latest commit

 

History

History
51 lines (34 loc) · 1.07 KB

策略模式.md

File metadata and controls

51 lines (34 loc) · 1.07 KB

策略模式


什么是策略模式

  • 定义一系列算法,把他们封装起来,并且使他们可以相互替换

为什么使用策略模式

  • 提高程序的扩展性,在需要新增加对应的策略的时候,可以直接实现对应接口即可,另外一方面可以将程序中,业务部分和算法部分分离开使程序更加具有条理。

策略模式的实现

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;
    }
}