分解条件表达式(Decompose Conditional)

你有一个复杂的条件语句;从if,then,else三个段落中分别提炼出独立函数

一、动机

1、提高代码可读性

2、突出条件逻辑,更清楚的表明每个分支的作用,并且突出每个分支的原因

二、做法

1、将if段落提炼出来,构成一个独立的函数

2、将then段落和else段落都提炼出来,各自构成一个独立函数,如果发现嵌套的条件逻辑,我通常会先观察是否可以使用Replace Nested Conditional with Guard Clause。如果不行,才开始分解其中的每个条件

重构——34分解条件表达式(Decompose Conditional)相关推荐

  1. 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)

    系列博客 1. 改善代码设计 -- 优化函数的构成(Composing Methods) 2. 改善代码设计 -- 优化物件之间的特性(Moving Features Between Objects) ...

  2. 实例带你掌握如何分解条件表达式

    本文分享自华为云社区<分解条件表达式(Decompose Conditional)>,作者: JavaEdge . 1 动机 程序中复杂的条件逻辑导致我必须编写代码来检查不同的条件分支,根 ...

  3. 代码重构(四):条件表达式重构规则

    继续更新有关重构的博客,前三篇是关于类.函数和数据的重构的博客,内容还算比较 充实吧.今天继续更新,本篇博客的主题是关于条件表达式的重构规则.有时候在实现比较复杂的业务逻辑时,各种条件各种嵌套.如果处 ...

  4. Decompose Conditional(分解条件表达式)

    有一个复杂的 if-else 语句 if (date.before(SUMMER_START) || date.after(SUMMER_END)) {charge = quantity * wint ...

  5. 重构指南 - 封装条件(Encapsulate Conditional)

    封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当代码中包含许多 ...

  6. 重构条件-Decompose Conditional分解条件式一

    重构条件-Decompose Conditional分解条件式一 1.分解条件式 1.1.使用场景 你有一个复杂的条件(if-then-else)语句.从if.then.else三个段落中分别提炼出独 ...

  7. 重构-改善既有代码的设计:简化条件表达式(七)

    简化条件表达式 1.Decompose Conditional 分解条件表达式 你有一个复杂的条件语句.从if.then.else三个段落中分别提炼出独立函数. 程序之中,复杂的条件逻辑是最常导致复杂 ...

  8. 重构——39以多态取代条件表达式(Replace Conditional with Polymorphism)

    以多态取代条件表达式(Replace Conditional with Polymorphism) 你手上有个条件表达式,它根据对象类型的不同而选择不同的行为:将这个条件表达式的每个分支放进一个子类内 ...

  9. 重构手法——提炼函数、搬移函数、以多态取代条件表达式

    目录 我的心路历程 我的学习概括 Extract Method(提炼函数) 动机*--做法 动机--做法* Move Method(搬移函数) 动机*--做法 动机--做法* Replace Cond ...

最新文章

  1. js 定时任务,定时器
  2. android 除了webview 浏览器控件,AgentWeb是基于Android WebView一个功能完善小型浏览器库...
  3. Boost:circular buffer的测试程序
  4. 如何构建高并发高可用的剧场直播云端混流服务?
  5. 【编译原理】CFG分析树
  6. 快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...
  7. 番茄钟怎么调_学习神器-番茄钟
  8. ubuntu 12.04 mysql_ubuntu12.04 安装和卸载mysql
  9. 即时通讯学习笔记003---Tigase代码框架解读
  10. 深入解读Service Mesh的数据面Envoy
  11. php留言系统源码,XYCMS php留言板 v8.0
  12. MXF 媒体交换文件格式
  13. C#程序设计--控制台程序输出上下三角形和菱形
  14. 水煮肉片+各种牛肉等四种川味特色菜
  15. wps word文档复制图片显示不全,只显示一行
  16. 大数据分析哪款软件好用?如何进行大数据分析
  17. 新唐单片机如何生成精确延迟
  18. 安全工程转计算机专业,2019安全工程专业就业前景和就业方向分析
  19. java毕业设计宝马官网Mybatis+系统+数据库+调试部署
  20. 阿里巴巴为什么退市?阿里巴巴为什么退出香港股市?

热门文章

  1. ad域帐号登录提示无法处理请求_面试官:来说说单点登录的三种实现方式
  2. 【财务】FMS财务管理系统---费用管理
  3. PHP短信通知+语音播报自动双呼解决方案
  4. 协程 进程_进程,线程,协程的关系
  5. 2017勒索软件威胁形势分析报告
  6. SV学习笔记—子程序
  7. 参考文献文中标注位置
  8. 美图秀秀笔试题:妖怪与和尚过河问题答案
  9. 计算机主机红灯不闪硬盘工作,电脑硬盘指示灯不亮怎么办?如何解决电脑硬盘灯不亮问题...
  10. 有关微软安全漏洞及补丁(HotFix)的命名规则