了解策略模式建议大家先看一下这篇
https://www.runoob.com/design-pattern/strategy-pattern.html
步骤一创建一个接口
public interface Strategy {public int love(int a,int b);
}
然后实现对应的接口A和B
public class StrategyA implements Strategy {@Overridepublic int love(int a, int b) {System.out.println("进入++++");return a+b;}
}
public class StrategyB implements Strategy {@Overridepublic int love(int a, int b) {System.out.println("进入-----");return a-b;}
}
创建一个test类用来调用
public class StrategyTest {public static void main(String[] args) {String clazzName = "StrategyA";
// String clazzName = "StrategyB";try {Strategy a = (Strategy)Class.forName(clazzName).newInstance();int love = a.love(1, 2);System.out.println(love);} catch (Exception e) {e.printStackTrace();}}
}
当clazzName为StrategyA时结果为
当clazzName为StrategyB时结果为
而对于clazzName可以采用配置文件读取的形式,通过配置文件配置对应的执行策略;
注意clazzName记得要是全路径名;
对了这个方式还可以把入参设置成对象等复杂的对象类型,具体就是在接口中声明时声明,其他一样,还要注意要是接口声明方法时的方法作用域