算法可替换
public class StrategyDemo {
public static void main(String[] args) {
int a = 1, b = 2;
StrategyDemo strategyDemo = new StrategyDemo();
strategyDemo.calculate(a, b, new AddStrategy());
strategyDemo.calculate(a, b, new ReduceStrategy());
}
public void calculate(int a, int b, IStrategy strategy) {
int result = a + b + strategy.calculate();
}
}
interface IStrategy {
int calculate();
}
class AddStrategy implements IStrategy {
@Override
public int calculate() {
//一大堆代码
return 0;
}
}
class ReduceStrategy implements IStrategy {
@Override
public int calculate() {
//一大堆代码
return 1;
}
}