abstract class OperationStrategy {
public abstract void getResult(double a, double b);
}
class AddStrategy : OperationStrategy {
@override
public double getResult(double a, double b) {
return a + b;
}
}
class SubStrategy : OperationStrategy {
@override
public double getResult(double a, double b) {
return a - b;
}
}
class Context {
OperationStrategy opStrategy = null;
public Context (OperationStrategy opStrategy) {
this.opStrategy = opStrategy;
}
public double getResult(double a, double b) {
return opStrategy.getResult(a, b);
}
}
//客户端代码
main () {
OperationStrategy opStrategy = new AddStrategy();
Context context = new Context(opStrategy);
double result = context.getResult(2, 3);
}