重构-改善既有代码的设计(九)
重构 第九章 简化既有的条间表达式
?
1、Decompose Conditional(分解条件式)
你有一个复杂的条件(if-then-else)语句 从if then else 分别提炼出独立函数
?
2、Consolidate Conditional Expression(合并条件式)
你有一系列条件测试,都得到相同结果,将这些测试合并为一个条件式,并将这个条件式提炼成为一个独立函
3、Consolidate Duplicate Conditional Fragments(合并重复的条件片段)
在条件式的每个分支上有着相同的一段代码。将这段重复代码搬移到条件式之外。
4、Remove Control Flag(移除控制标记)
在一系列布尔表达式(boolean expressions)中,某个变量带有「控制标记」(control flag)的作用。以break 语句或return 的语句取代控制标记。
5、Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件式)
函数中的条件逻辑(conditional logic)使人难以看清正常的执行路径。
使用卫语句(guard clauses)表现所有特殊情况。
?
6、Replace Conditional with Polymorphism(以多态取代条件式)
你手上有个条件式,它根据对象型别的不同而选择不同的行为。
将这个条件式的每个分支放进一个subclass 内的覆写函数中,然后将原始函数声明为抽象函数(abstract method)。
?
7、Introduce Null Object(引入Null 对象)
你需要再三检查「某物是否为null value」。
将null value (无效值)替换为null object(无效物)。
?
8、Introduce Assertion(引入断言)
某一段代码需要对程序状态(state)做出某种假设。
?
以assertion(断言)明确表现这种假设。
?
?
?
?
?
?
?