美文网首页
策略模式

策略模式

作者: lantern王 | 来源:发表于2019-06-18 11:40 被阅读0次

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

    使用场景:
    1.针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。
    2.需要安全地封装多种同一类型的操作时。
    3.出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类时。

    eg:
    假设我们计算北京公共出行价格,从昌平沙河地铁站到东直门共25公里。计算公交,地铁,出租的价格。如果是普通的计算的话,可能写在一个方法里,通过if-else来分别计算不同的公共出行方式价格。策略模式则是将每个出行方式抽象出一个基类,然后封装在一个独立的类中,通过传递不同的实现类来解耦。

    定义一个抽象的价格计算接口:


    image.png

    公交车计算策略:


    image.png

    地铁计算策略:


    image.png

    具体计算类:


    image.png

    client:


    image.png

    如果想加入出租的计算策略,则如下:


    image.png

    相关文章

      网友评论

          本文标题:策略模式

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