策略模式
- 策略模式本质还是多态的运用。
- 简单来说就是多种相似的行为创建一个公共接口,每种行为都是一个实现类。 然后需要一个中间类,中间类持有一个接口对象。 并且还持有一个调用行为方法并返回行为结果的方法。(即不直接调不同实现类的方法,而是通过一个方法调不同实现类方法)
- 使用时就给中间类传不同实现类对象,然后调用共用的行为执行方法
```java
public interface Strategy {
public int doOperation(int num1, int num2);
}
class OperationAdd implements Strategy{
@Override
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
class OperationSubtract implements Strategy{
@Override
public int doOperation(int num1, int num2) {
return num1 - num2;
}
}
class OperationMultiply implements Strategy{
@Override
public int doOperation(int num1, int num2) {
return num1 * num2;
}
}
```javapublic class Context { private Strategy strategy; public Context(Strategy strategy){ this.strategy = strategy; } public int executeStrategy(int num1, int num2){ return strategy.doOperation(num1, num2); }}
Context context = new Context(new OperationAdd());System.out.println("10 + 5 = " + context.executeStrategy(10, 5));context = new Context(new OperationSubtract());System.out.println("10 - 5 = " + context.executeStrategy(10, 5));context = new Context(new OperationMultiply());System.out.println("10 * 5 = " + context.executeStrategy(10, 5));