设计模式之策略模式

使用模式最好的方式是:“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用他们。”,以往是代码复用,现在是经验复用。

1设计一个鸭子类,这个类首先具有一些功能,比如呱呱叫 游泳等行为。

作为OO程序员,首先想到的这很简单,设计一个超类,同时父类具有一些功能,子类继承下来就会有应有的行为。

2 突然加一个需求,比如又一种鸭子具有额外的功能,比如会飞的天鹅,如果在父类加会飞的行为,很明显这种程序设计,是不合理的。那该怎么办呢?

先渗透几个知识点:

1 在软件开发中,是什么让你深信不疑的?

   那就是“change”;

设计原则:

   找出应用中可能需要变化之处,把它们独立起来,不要和那些不需要变化的代码混在一起。

现在开始把鸭子的行为从父类取出来。

我们希望 设计的类具有弹性,

设计的第二个原则:针对接口编程,而不是针对实现编程。也就是针对超类型编程。


我们抽象 会飞的行为,呱呱叫的行为 等 协议。

让不同种鸭子类实现对应的行为协议编程。

最后, 就是有一个可能比 是一个更好 , 多用组合 少用继承。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 客户需求 程序设计 1、直接利用继承如何? 将以上四种行为全部写到Duck这个基类中,然后子类重写飞和叫的行为。但...
    BlainPeng阅读 535评论 2 7
  • 模拟鸭子 模拟一个鸭子的游戏SimUDuck,游戏中会出现各种鸭子,一边游戏戏水,一边呱呱叫。现采用oo技术,设计...
    yaSecrets阅读 347评论 0 0
  • 策略模式,是我们接触到的第一个设计模式,也是较容易理解的一个模式。我们可以给它下一个定义:** 定义了算法族,分别...
    六尺帐篷阅读 855评论 0 8
  • 思考: 假设有个需求,模拟鸭子游戏:在游戏中会出现各种各样的鸭子,一边游泳戏水,一边呱呱叫。开始我们的设计吧: 这...
    MarksGui阅读 210评论 0 0
  • 一直想把常见的设计模式系统地学习一遍,结果和大多数人一样,过了几天就没能坚持下去了。我发现学习这件事情急不得,往往...
    Neulana阅读 619评论 5 2

友情链接更多精彩内容