策略模式

转载:策略模式

策略模式 & 状态模式

混合模式

UNL类图

策略模式

  • Context向外暴露使用策略的接口,设置使用哪一个策略。

  • Strategy策略基类,所有的策略类都继承自该类

  • ConcreteStrategyA、ConcreteStrategyB具体的策略类,用来实现具体的解决方案。

适用场合

适合于一个问题有多种解决方案。比如排序时可以选择快排,堆排,冒泡,选择,插入等。主要解决if...else带来的复杂和难以维护。

关键代码实现同一个接口

注意事项

如果一个系统策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。

应用实例:

  • 诸葛亮的锦囊妙计,每一个锦囊就是一个策略

  • 出行方式,自行车,汽车,步行,每一种出行方式都是一个策略。

  • 常见的鸭子策略模式:每一个具体的鸭子是一种策略,每种鸭子都有不同的表现形式(飞行高度,叫声大小等等)。

优缺点:

优点

  • 策略可以自由切换,

  • 避免使用多重条件判断(if...else)

  • 扩展性好

缺点

  • 策略类会很多

  • 所有策略类都需要对外暴露

原文链接: https://www.cnblogs.com/mmmmmmmmm/p/15093268.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    策略模式

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/404107

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月24日 下午6:42
下一篇 2023年4月24日 下午6:42

相关推荐