美文网首页
《Head First设计模式》-简单易懂的策略模式

《Head First设计模式》-简单易懂的策略模式

作者: 虎三呀 | 来源:发表于2018-08-30 16:36 被阅读0次

本文章出自《Head First设计模式》读后感

策略模式定义

策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。

策略模式小故事

这是一个JOE在上班的时候做一个“模拟鸭子游戏”的小故事
以下是模拟鸭子的部分代码


上图中可以看出,Duck是鸭子的超类 所有鸭子都必须继承Duck这个超类。

  • 问题点:有些鸭子会飞,怎么办呢?
  • 答:在超类Duck中添加一个fly方法即可。
  • 问题点:每个实现鸭子的类都要去实现fly 会飞的方法,那我有个模型鸭呢?模型鸭不会飞的。
  • 答:这个时候可以把模型鸭的fly方法重写,覆盖掉飞的行为。
  • 问题点:这样每个鸭子的fly方法都要重写,如果我有十种、一百种鸭子怎么办呢?
  • 答:使用策略模式,还记得策略模式的定义吗?抽取变化部分,使他们可以互相替换互相独立。。
  • 问题点:我们的变化部分在哪里呢?
  • 答:飞行的方法,叫声的方法。

使用策略模式

相信看问题点和上图,已经很想清楚策略模式的应用了吧!

相关文章

网友评论

      本文标题:《Head First设计模式》-简单易懂的策略模式

      本文链接:https://www.haomeiwen.com/subject/kohdwftx.html