重构——34分解条件表达式(Decompose Conditional)
分解条件表达式(Decompose Conditional)
你有一个复杂的条件语句;从if,then,else三个段落中分别提炼出独立函数
一、动机
1、提高代码可读性
2、突出条件逻辑,更清楚的表明每个分支的作用,并且突出每个分支的原因
二、做法
1、将if段落提炼出来,构成一个独立的函数
2、将then段落和else段落都提炼出来,各自构成一个独立函数,如果发现嵌套的条件逻辑,我通常会先观察是否可以使用Replace Nested Conditional with Guard Clause。如果不行,才开始分解其中的每个条件
重构——34分解条件表达式(Decompose Conditional)相关推荐
- 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)
系列博客 1. 改善代码设计 -- 优化函数的构成(Composing Methods) 2. 改善代码设计 -- 优化物件之间的特性(Moving Features Between Objects) ...
- 实例带你掌握如何分解条件表达式
本文分享自华为云社区<分解条件表达式(Decompose Conditional)>,作者: JavaEdge . 1 动机 程序中复杂的条件逻辑导致我必须编写代码来检查不同的条件分支,根 ...
- 代码重构(四):条件表达式重构规则
继续更新有关重构的博客,前三篇是关于类.函数和数据的重构的博客,内容还算比较 充实吧.今天继续更新,本篇博客的主题是关于条件表达式的重构规则.有时候在实现比较复杂的业务逻辑时,各种条件各种嵌套.如果处 ...
- Decompose Conditional(分解条件表达式)
有一个复杂的 if-else 语句 if (date.before(SUMMER_START) || date.after(SUMMER_END)) {charge = quantity * wint ...
- 重构指南 - 封装条件(Encapsulate Conditional)
封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当代码中包含许多 ...
- 重构条件-Decompose Conditional分解条件式一
重构条件-Decompose Conditional分解条件式一 1.分解条件式 1.1.使用场景 你有一个复杂的条件(if-then-else)语句.从if.then.else三个段落中分别提炼出独 ...
- 重构-改善既有代码的设计:简化条件表达式(七)
简化条件表达式 1.Decompose Conditional 分解条件表达式 你有一个复杂的条件语句.从if.then.else三个段落中分别提炼出独立函数. 程序之中,复杂的条件逻辑是最常导致复杂 ...
- 重构——39以多态取代条件表达式(Replace Conditional with Polymorphism)
以多态取代条件表达式(Replace Conditional with Polymorphism) 你手上有个条件表达式,它根据对象类型的不同而选择不同的行为:将这个条件表达式的每个分支放进一个子类内 ...
- 重构手法——提炼函数、搬移函数、以多态取代条件表达式
目录 我的心路历程 我的学习概括 Extract Method(提炼函数) 动机*--做法 动机--做法* Move Method(搬移函数) 动机*--做法 动机--做法* Replace Cond ...
最新文章
- js 定时任务,定时器
- android 除了webview 浏览器控件,AgentWeb是基于Android WebView一个功能完善小型浏览器库...
- Boost:circular buffer的测试程序
- 如何构建高并发高可用的剧场直播云端混流服务?
- 【编译原理】CFG分析树
- 快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...
- 番茄钟怎么调_学习神器-番茄钟
- ubuntu 12.04 mysql_ubuntu12.04 安装和卸载mysql
- 即时通讯学习笔记003---Tigase代码框架解读
- 深入解读Service Mesh的数据面Envoy
- php留言系统源码,XYCMS php留言板 v8.0
- MXF 媒体交换文件格式
- C#程序设计--控制台程序输出上下三角形和菱形
- 水煮肉片+各种牛肉等四种川味特色菜
- wps word文档复制图片显示不全,只显示一行
- 大数据分析哪款软件好用?如何进行大数据分析
- 新唐单片机如何生成精确延迟
- 安全工程转计算机专业,2019安全工程专业就业前景和就业方向分析
- java毕业设计宝马官网Mybatis+系统+数据库+调试部署
- 阿里巴巴为什么退市?阿里巴巴为什么退出香港股市?