设计模式之策略模式

Posted suyang-java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之策略模式相关的知识,希望对你有一定的参考价值。

    今天我们要介绍的设计模式叫做策略模式。策略模式其实就是把不同的策略(方法)封装在不同的类中。在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式(摘自菜鸟教程)。下面我们用代码来实现策略模式。

    1、首先定义一个策略的接口:

public interface Strategy {
    public int operating();
}

2.定义一些实现策略接口的实现类(具体的策略)。

public class AddOperation implements Strategy{
    @Override
    public int operating(int a,int b) {
        return a+b;
    }
}


public class SubstractOperation implements Strategy{
    @Override
    public int operating(int a,int b) {
        return a-b;
    }
}

3.定义一个Context 类。

public class Context {
    private Strategy strategy;

    public Context(Strategy strategy) {
        this.strategy = strategy;
    }

    public int executeStrategy(int a, int b) {
        return strategy.operating(a, b);
    }
}

4.客户端调用:

public static void main(String[] args) {
          Context context = new Context(new AddOperation());    
          System.out.println("12 + 5 = " + context.executeStrategy(12, 5));
     
          context = new Context(new SubstractOperation());      
          System.out.println("12 - 5 = " + context.executeStrategy(12, 5));
    }


代码执行结果:
12 + 5 = 17
12 - 5 = 7

在实际的开发中,策略模式通常与工厂模式混合使用。

以上是关于设计模式之策略模式的主要内容,如果未能解决你的问题,请参考以下文章

java设计模式之策略模式

设计模式之策略模式

阿昌之丑陋代码优化通过策略模式&模版模式来优化Controller执行流程

设计模式之策略模式

设计模式之策略模式

Javascript设计模式总结之 -- 策略模式