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

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

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

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

一、动机

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

二、做法

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

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

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

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

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

目录
相关文章
|
SQL 关系型数据库 MySQL
使用索引消除group by 排序
ySQL数据库在使用group by查询时默认会进行排序,有时候我们并不需要这种排序,消除这种排序有两种方式,本文介绍其中一种,即使用索引消除排序,这种方式还有一个附加的好处,就是避免临时表的创建。
698 0
|
5月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
JSON 程序员 数据格式
优雅地处理Python中的条件分支:字典映射、函数组合与match-case语句
在本文中,我们探讨了如何在Python中优雅地处理条件分支,以避免使用过多的if语句。文章介绍了两种解决方案:字典映射与函数组合以及Python 3.10中引入的match-case语句。这些方法使得代码结构更加清晰、简洁且易于维护和扩展。
137 0
【Endnote】插入文献时,自动弹出select matching reference
【Endnote】插入文献时,自动弹出select matching reference
213 0
重构——57字段上移(Pull Up Field)
字段上移(Pull Up Field):两个子类拥有相同的字段;将该字段移至超类
1644 0
重构——35合并条件表达式(Consolidate Conditional Expression)
合并条件表达式(Consolidate Conditional Expression):你有一系列条件测试,都得到相同结果;将这些测试合并为一个条件表达式,并将这个条件表达式提炼为一个独立函数
1268 0
重构——38以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause)
以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause):函数中的条件逻辑使人难以看清正常的执行路径;使用卫语句表现所有特殊情况
3821 0
重构——11搬移字段(Move Field)
搬移字段(Move Field):你的程序中,某个字段被其所驻类之外的另一个类更多的用到。在目标类新建一个字段,修改源字段的所有用户,令它们该用新字段
1407 0
重构——61字段下移(Push Down Field)
字段下移(Push Down Field):超类中某个字段只被部分子类用到;将这个字段移到需要它的子类中去
1253 0