重构——36合并重复的条件片段(Consolidate Duplicate Conditional Fragments)

简介: 合并重复的条件片段(Consolidate Duplicate Conditional Fragments):在条件表达式的每个分支上有相同的一段代码;将这段重复的代码搬移到条件表达式之外

合并重复的条件片段(Consolidate Duplicate Conditional Fragments)

在条件表达式的每个分支上有相同的一段代码;将这段重复的代码搬移到条件表达式之外

一、动机

代码更清楚的表明哪些东西是随条件变化而变化,哪些东西保持不变

二、做法

1、鉴别出“执行方式不随条件变化而变化”的代码

2、如果这些共同代码位于条件表达式的起始处,就将它移到条件表达式之前

3、如果这些共同代码位于条件表达式的尾端,就将它移到条件表达式之后

4、如果位于中段,就需要观察共同代码之前或者之后代码是否改变了什么。然后将这些代码向前移动或者向后移动,然后按照上面的步骤操作

5、如果共同代码不止一句,应该首先使用Extract Method将共同代码提炼到一个独立的函数中,再以前面说的方法来处理

目录
相关文章
|
SQL 索引 数据库
使用instr 函数优化替换Like条件子句提高数据检索性能案例总结
使用instr 函数优化替换Like条件子句提高数据检索性能
1148 0
使用instr 函数优化替换Like条件子句提高数据检索性能案例总结
|
6月前
|
C#
C#动态查询:巧用Expression组合多条件表达式
在C#中,利用`Expression`类和`AndAlso`、`OrElse`方法,可以组合两个`Expression<Func<T, bool>>`以实现动态多条件查询。该方法通过构建表达式树,方便地构建复杂查询。示例代码展示了如何创建表达式树,分别检查年龄大于等于18和姓名为"John"的条件,并使用`AndAlso`组合这两个条件,最终编译为可执行的委托进行测试。
260 1
|
JSON 程序员 数据格式
优雅地处理Python中的条件分支:字典映射、函数组合与match-case语句
在本文中,我们探讨了如何在Python中优雅地处理条件分支,以避免使用过多的if语句。文章介绍了两种解决方案:字典映射与函数组合以及Python 3.10中引入的match-case语句。这些方法使得代码结构更加清晰、简洁且易于维护和扩展。
125 0
重构——35合并条件表达式(Consolidate Conditional Expression)
合并条件表达式(Consolidate Conditional Expression):你有一系列条件测试,都得到相同结果;将这些测试合并为一个条件表达式,并将这个条件表达式提炼为一个独立函数
1258 0
重构——38以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause)
以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause):函数中的条件逻辑使人难以看清正常的执行路径;使用卫语句表现所有特殊情况
3796 0
重构——34分解条件表达式(Decompose Conditional)
分解条件表达式(Decompose Conditional):你有一个复杂的条件语句;从if,then,else三个段落中分别提炼出独立函数
1519 0
重构——11搬移字段(Move Field)
搬移字段(Move Field):你的程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类新建一个字段,修改源字段的所有用户,令它们该用新字段
1397 0
重构——24将单项关联改为双向关联(Change Unidirectional Association to Bidirectional)
将单项关联改为双向关联(Change Unidirectional Association to Bidirectional):两个类都需要对方特性,但其间只有一条单向连接;添加一个反向连接,并使修改函数能够同时更新两条连接
1417 0