重构——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条件子句提高数据检索性能
1008 0
使用instr 函数优化替换Like条件子句提高数据检索性能案例总结
|
Java Maven Ruby
去掉复杂的逻辑计算,get一下Aviator吧
去掉复杂的逻辑计算,get一下Aviator吧
360 0
重构——57字段上移(Pull Up Field)
字段上移(Pull Up Field):两个子类拥有相同的字段;将该字段移至超类
1563 0
使用ABAP 7.40引入的table表达式来操作内表
使用ABAP 7.40引入的table表达式来操作内表
114 0
|
Windows
怎么去掉文章或产品介绍中的垃圾代码?怎么过滤这些垃圾代码?
一般从网页或从WORD中复制粘贴时,会带来一些垃圾代码,有可能会导致显示异常,例如如下样例中的灰色方框,无法直接删掉,怎么办? 小技巧:如点右键粘贴不能用,可以用粘贴快捷键:Ctrl+V 1、删掉方法如下:如下图,先点HTML图标,然后 就可以看到下面的代码了,直接删掉就行了。
1234 0
重构——35合并条件表达式(Consolidate Conditional Expression)
合并条件表达式(Consolidate Conditional Expression):你有一系列条件测试,都得到相同结果;将这些测试合并为一个条件表达式,并将这个条件表达式提炼为一个独立函数
1241 0
重构——38以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause)
以卫语句取代嵌套条件表达式(Replace Nested Conditional with Guard Clause):函数中的条件逻辑使人难以看清正常的执行路径;使用卫语句表现所有特殊情况
3746 0
重构——34分解条件表达式(Decompose Conditional)
分解条件表达式(Decompose Conditional):你有一个复杂的条件语句;从if,then,else三个段落中分别提炼出独立函数
1489 0
重构——39以多态取代条件表达式(Replace Conditional with Polymorphism)
以多态取代条件表达式(Replace Conditional with Polymorphism):你手上有个条件表达式,它根据对象类型的不同而选择不同的行为;将这个条件表达式的每个分支放进一个子类内的覆写函数中,然后将原始的函数声明为抽象函数
2279 0