使用策略模式重构if/elseif/elseif

本文翻译自国外论坛 medium,原文地址:https://medium.com/aia-sg-techblog/refactor-if-elseif-elseif-using-strategy-design-pattern-80c51913a539


策略设计模式是一种允许在运行时选择算法的行为。这种模式

  • 定义了一系列算法
  • 封装每种算法
  • 使算法在该系列内可互换。

下面是策略设计模式的架构,客户端将在其中与上下文进行通信。上下文将包含对策略对象的引用,这反映了另一个设计原则 “针对接口而非实现编程”

使用策略模式重构if/elseif/elseif

让我们检查一下如何使用以下场景重构旧式 if else 语句。

使用策略模式重构if/elseif/elseif

这种设计的问题在于,每当我们需要添加或修改任何传输方式时,它总是会影响业务逻辑的实现。

让我们使用策略设计模式重构紧密耦合的代码。

使用策略模式重构if/elseif/elseif
策略接口及其实现
使用策略模式重构if/elseif/elseif
上下文对象持有策略参考

客户端代码如下所示

使用策略模式重构if/elseif/elseif

优点:

  1. 添加新策略不会干扰之前的任何代码。
  2. 移除/重构之前的任何策略都是灵活的。
  3. 易于单一测试。

·END·

关注公众号【waynblog】点击右下角“赞”和“在看”按钮第一时间获取博主精彩技术分享


往期原创热门文章推荐:

  1. 什么是好代码/坏代码?给普通人的图解示例

  2. 微服务开发:断路器详解

  3. 一套前后台全部开源的H5商城送给大家

  4. 怎样成为优秀的后端工程师

  5. 推荐一款优秀电商开源项目

  6. 让SQL起飞(优化)

  7. 推荐算法在商城系统实践

  8. 分享10个高级sql写法

原文始发于微信公众号(waynblog):使用策略模式重构if/elseif/elseif

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157933.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!