美文网首页
策略模式

策略模式

作者: 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