浅谈设计模式之策略模式

策略模式,即通过封装算法簇接口,来实现在运行时的动态绑定。首先我们要定义接口,即你想让类拥有的能力。对于鸭子来说,叫(quack)和飞(fly)即可定义成两种能力,分别定义为:

public interface QuackBehavior{

    void quack(){}

}

public interface FlyBehavior{

    void fly(){}

}

接下来我们可以通过实现接口来定义不同的动作,比如flyWithWings,最后通过在目标类Duck中包含这两个接口,就可以让Duck类在实例化时或运行中,对自身的行为进行改变和定义。这样做的好处是1.用的是组合不是继承,不会限制Duck类的扩展;2.行为类和目标类之间实现了解耦,行为类代码的修改对于目标类来说不需要感知;3.可以在运行时根据需要改变行为,让鸭子变的更加灵活。

在现实生活中,策略模式用的地方很广,在写策略交易平台的时候,你需要为写策略的人提供各种能力的支持,比如行情查询能力,持仓委托查询能力,下单能力,订阅能力,可以把这些能力都通过接口注入到基类当中。

你可能感兴趣的:(浅谈设计模式)