策略模式:一个类的行为或其算法可以在运行时更改。
应用场景:1、当有很多类似的类,但执行某些行为的方式不同时。 2、动态地在几种算法中选择一种。
public class StrategyPattern {
public static void main(String[] args) {
doOperation doOperation = new doOperation(new Add());
double execute = doOperation.execute(1, 2);
System.out.println(execute);
}
}
interface Strategy {
double operation(double num1, double num2);
}
class Add implements Strategy {
@Override
public double operation(double num1, double num2) {
return num1 + num2;
}
}
class Minus implements Strategy {
@Override
public double operation(double num1, double num2) {
return num1 - num2;
}
}
class doOperation {
private Strategy strategy;
public doOperation(Strategy strategy) {
this.strategy = strategy;
}
public double execute(double num1, double num2) {
return strategy.operation(num1, num2);
}
}