场景
目前遇到这样一个场景,就是会根据前端不同的传值执行对应的方法策略。按照正常思路,需要在代码中使用if判断前端的值来执行不同的方法。但这样做的缺点是会造成大量if判断,且下次新增加一个值对应一个策略,那么就需要改动代码。
解决
对于这种根据值来执行不同策略的场景,可以使用工厂模式+策略模式来解决。
既然有策略,那么我们就需要定义一个策略接口或策略抽象类。
public interface Strategy{
void doOperation();
String getStrategyName();
}
定义具体策略类,这里定义了两个策略类
@Component
public class StrategyA implements Strategy{
@Override
public void doOperation(){
System.out.println("执行策略a");
}
@Override
public String getStrategyName()