欢迎光临散文网 会员登陆 & 注册

设计模式:策略模式

2021-05-07 22:40 作者:做架构师不做框架师  | 我要投稿

什么是策略模式?

策略模式(英文:Strategy Pattern),定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的改变不会影响使用算法的客户。

一句话归纳

条条大道通罗马,具体哪条你决定

代码示例

我所在的公司是一家电商公司,电商公司在每一个节日都会搞一些促销活动,比如“618”、“双11”、“年货节”等等;在这些促销活动还会有不同的促销手段,比如“全场满减”、“满折”、“拼团”等等,而对于我们程序员来讲,每一次促销活动都是一次对系统的大考。

类与类之间的关系如下:

具体代码如下所示:

适用性

以下我建议你考虑使用:

  • 算法可以自由切换的时候;

  • 多个类在算法和行为上稍稍不同的时候;

  • 算法相对独立,并且要对客户端隐藏具体的实现细节的时候;

  • 比如支付渠道:有支付宝、微信、银联支付;快递有顺丰、中通、京东等等。

局限性

以下我建议你谨慎使用:

  • 每一个策略都是一个类,复用的可能性小,类会增多;

  • 客户端必须知道每一个策略之间的区别,以便在合适的场景选择恰当的策略。

写在最后

最后,好兄弟,记得点赞,关注,谢谢。


设计模式:策略模式的评论 (共 条)

分享到微博请遵守国家法律