策略模式的理解

参考:http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html

策略模式遵守的几个原则:

1、依赖倒置:即依赖接口编程,而不是依赖实现

     例如:Duck中的Performfly和PerformQuack方法中调用的是接口

2、优先使用组合而不是继承(因为继承大大提高了类之间的依赖性,耦合度较高)

     例如:mallarduck不直接从Fly或Quack类继承,如果是直接从这些类中继承,则Fly和Quack的改变将影响

     所有的子类,而使用组合的方式就可以应用Fly和Quack的多态性,如果子类发生编号不影响其它的类(MallardDuck的  

     Fly的变化不会印象RedHeadDuck和RubberDuck的Fly)

策略模式的应用场景

   策略模式用于封装一个类的变化剧烈的行为,从而将此行为的变化对此类或此类的子类的影响排除。

   例如RubberDuck的Fly可以在RubberDuck中构造一个不会飞的FlyBehavior,这样就不会影响到父类和其它的Duck子类的FlyBehavior.

posted @ 2009-02-18 10:46  kuailewangzi1212  阅读(204)  评论(0编辑  收藏  举报