策略模式

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