策略模式
public interface Calculator {
public double calculate(double num1,double num2);
}
public class OptionAdd implements Calculator{
@Override
public double calculate(double num1, double num2) {
return num1 + num2;
}
}
public class OptionMultiply implements Calculator {
@Override
public double calculate(double num1, double num2) {
return num1 * num2;
}
}
定义上下文
public class Context {
private Calculator calculator;
public Context(Calculator calculator) {
this.calculator = calculator;
}
public double executeStrategy(int num1, int num2){
return calculator.calculate(num1, num2);
}
public void setCalculator(Calculator calculator) {
this.calculator = calculator;
}
public Calculator getCalculator() {
return calculator;
}
public static void main(String[] args) {
Context context = new Context(new OptionSubstract());
double strategy = context.executeStrategy(1, 3);
System.out.println("计算结果是:"+strategy);
}
}