策略模式
定义:将算法和算法的调用者独立开来,在运行时可以根据需要选择执行的算法的一种行为型模式。
使用场景:典型的if...else...消除,很多类但是区别仅存在一个行为上时,能够使用策略模式消除条件语句的复杂性以及难以维护的问题。
实现方式:
定义策略接口:定义策略方法
public interface Strategy {
public int doOperation(int num1, int num2);
}
策略实现类:根据不同业务实现不同的策略方法
public class OperationAdd implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
public class OperationSubtract implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
public class OperationMultiply implements Strategy {
@Override
public int doOperation(int num1, int num2) {
return num1 * num2;
}
}
策略上下文:提供统一调用策略方法的入口
public class Context {
private Strategy strategy;
public Context(Strategy strategy){
this.strategy = strategy;
}
public int executeStrategy(int num1, int num2){
return strategy.doOperation(num1, num2);
}
}
标签:num1,num2,int,模式,Strategy,strategy,public,策略
From: https://www.cnblogs.com/Zun-x/p/18386913