美文网首页
《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