策略模式是根据相同的接口,根据不同情况而实现不同的策略。
public interface Operation {
int operate( int a, int b);
}
public class AddOperation implements Operation {
public int operate( int a, int b) {
return a+b;
}
}
public class MultiplyOperation implements Operation {
public int operate( int a, int b) {
return a * b;
}
}
public class OperationEnviroment {
private Operation operation ;
public OperationEnviroment() {
}
public OperationEnviroment(Operation operation) {
this .operation = operation;
}
public Operation getOperation() {
return operation ;
}
public void setOperation(Operation operation) {
this .operation = operation;
}
public void runOperation( int a, int b) {
System. out .println(operation .operate(a, b));
}
}
public class StrategyClient {
public static void main(String[] args) {
OperationEnviroment enviroment = new OperationEnviroment();
AddOperation addOperation = new AddOperation();
enviroment.setOperation(addOperation);
enviroment.runOperation(2,3);
MultiplyOperation multiplyOperation = new MultiplyOperation();
enviroment.setOperation(multiplyOperation);
enviroment.runOperation(2,3);
}
}