重构摘要9_简化条件表达式
2014-06-05 09:37
190 查看
《重构-改善既有代码的设计》Martin Fowler 摘要: 第九章 简化条件表达式
你有一个复杂的条件(if-then-else)语句
从三个段落中分别提炼出独立函数
你有一系列条件测试,都得到相同结果
将这些测试合并成为一个条件表达式,并将这个条件表达式提炼成为一个独立函数
检查用意更清晰,有时也不用这么做
在条件表达式的每个分支上有着相同的一段代码
将这段重复代码搬移到条件表达式之外
在一系列布尔表达式中,某个变量带有“控制标记”作用
以break语句或return语句取代控制标记
函数中的条件逻辑使人难以看清正常的执行路径
使用卫语句(单独检查)表现所有特殊情况
你手上有个表达式,它根据对象类型的不同而选择不同的行为。
将这个条件表达式的每个分支放进一个子类内的覆写函数中,将原始函数声明为抽象函数。
你需要再三检查某对象是否为null
将null值替换为null对象
空对象一定是常量,它们的任何成分都不会发生变化。
Nullabel接口 Null接口 同样的方法
常常可以看到空对象会返回其他空对象 。
Null Object 模式 Special Case模式 特例类 NAN 降低“错误处理”开销
某一段代码需要对程序状态做出某种加上
以断言明确表现这种假设
检查一定必须为真的条件
Decompose Conditinal 分解条件表达式
你有一个复杂的条件(if-then-else)语句从三个段落中分别提炼出独立函数
Consolidate Conditional Expression 合并条件表达式
你有一系列条件测试,都得到相同结果将这些测试合并成为一个条件表达式,并将这个条件表达式提炼成为一个独立函数
检查用意更清晰,有时也不用这么做
Consolidate Duplicate Conditional Fragments 合并重复的条件片段
在条件表达式的每个分支上有着相同的一段代码将这段重复代码搬移到条件表达式之外
Remove Control Flag 移除控制标记
在一系列布尔表达式中,某个变量带有“控制标记”作用以break语句或return语句取代控制标记
Replace Nested Conditional with Guard Clauses 以卫语句取代嵌套条件表达式
函数中的条件逻辑使人难以看清正常的执行路径使用卫语句(单独检查)表现所有特殊情况
Replace Conditional with Polymorphism 以多态取代条件表达式
你手上有个表达式,它根据对象类型的不同而选择不同的行为。将这个条件表达式的每个分支放进一个子类内的覆写函数中,将原始函数声明为抽象函数。
Introduce Null Object 引入Null对象
你需要再三检查某对象是否为null将null值替换为null对象
空对象一定是常量,它们的任何成分都不会发生变化。
Nullabel接口 Null接口 同样的方法
常常可以看到空对象会返回其他空对象 。
Null Object 模式 Special Case模式 特例类 NAN 降低“错误处理”开销
Introduce Assertion 引入断言
某一段代码需要对程序状态做出某种加上以断言明确表现这种假设
检查一定必须为真的条件
相关文章推荐
- 简化条件表达式(读书摘要——重构改善既有代码的设计)
- 重构之简化条件表达式
- PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式【链接:http://www.cnblogs.com/baochuan/archive/2012/04/06/2432478.html】
- 重构之简化条件表达式2
- 代码重构---简化条件表达式
- PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
- 《重构改善既有代码的设计》之重构列表--简化条件表达式(二)
- 《重构改善既有代码的设计》之重构列表--简化条件表达式(一)
- 重构手法之简化条件表达式【3】
- 重构--简化条件表达式
- 重构——简化条件表达式9.5
- 重构手法之简化条件表达式【4】
- 重构改善既有代码的设计--简化条件表达式
- 《重构》读书笔记(九)——第九章 简化条件表达式
- 【重构笔记05】简化条件表达式
- 【重构笔记】重构手法之简化条件表达式
- 重构代码-简化条件表达式
- 重构改善既有代码的设计--简化条件表达式