【HeadFirst设计模式】第一章 介绍设计模式 策略模式

策略模式

Don't

  1. 在维护代码的时候,若为了复用而使用继承,将功能写在父类中,结果可能会让不想拥有此行为的子类拥有行为,不好。
  2. 接口可以解决上述问题,将方法写在接口中,然后需要此行为的子类就去实现这个接口,但是造成的问题是接口的实现出现在每个子类当中,代码没有办法复用。

Do

  1. 在程序中将有可能需要改动的部分封装独立出来,不要和不需要改变的部分混在一起。分开变化和不会变化的东西。
  2. 要针对接口编程,而不是针对实现编程。
  3. 鸭子例子中,在Duck类中加入两个成员接口flyBehavior和quarkBehaviro。然后各种飞行和叫的行为实现这两个接口,在创建Duck子类的时候在子类的构造函数中将这两个成员接口指定具体行为类。
  4. 鸭子的飞行和叫的行为不是继承而来的,而是从别的行为对象组合而来的。所以多用组合,少用继承。

策略模式定义了算法族,分别封装起来,让他们直接可以相互替换,将算法的变换独立出来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容