策略模式

Posted diameter

tags:

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

名称:

    策略模式(Strategy Pattern)

 

问题:

     The intent of the Strategy Pattern is to define a family of algorithms, encapsulate each algorithm, and make them interchangeable. The Strategy Pattern lets the algorithm vary independently from clients that use it. In addition the pattern, defines a group of classes that represent a set of possible behaviors. These behaviors can then be used in an application to change its functionality.

 

解决方案:

    

1、 模式的参与者

    1、Strategy

    -定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。

    2、ConcreteStrategy

    -以Strategy接口实现某具体算法。

    3、ConText

    -用一个ConcreteStrategy对象来配置。

    -维护一个对Strategy对象的引用。

    -可定义一个接口来让Strategy访问它的数据。

 

2.实现方式

interface Strategy
{   
    public void method();   
}
class ConcreteStrategyA implements Strategy
{
    public void method()
    {
        System.out.println("A method!");
    }
}
class ConcreteStrategyB implements Strategy
{
  public void method()
  {
      System.out.println("B method");
  }
}
class Context
{
    private Strategy strategy;
    public Strategy getStrategy()
    {
        return strategy;
    }
    public void setStrategy(Strategy strategy)
    {
        this.strategy=strategy;
    }
    public void method()
    {
        strategy.method();
    }
}

 

参考资料

《设计模式:可复用面向对象软件的基础》

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

Redis实现分布式锁(设计模式应用实战)

用于从 cloudkit 检索单列的代码模式/片段

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式

代码片-策略模式+工厂模式