我们一起来读书吧 关注:154贴子:2,823
  • 0回复贴,共1

重构-改善既有代码的设计 第10章

只看楼主收藏回复

简化条件逻辑
程序的大部分威力来自条件逻辑,但很不幸,程序的复杂度也大多来自条件逻辑,因此简化条件逻辑很有必要
1.分解条件表达式:复杂的条件逻辑是最常导致复杂度上升的地点之一,可以将它分解为多个独立的函数,根据每个小块代码的用途,为分解而得的新函数命名,并将原函数中对应的代码改为调用新函数,从而更清楚地表达自己的意图;
2.合并条件表达式:检查条件各不相同,最终行为却一致,就应该使用“逻辑或”和“逻辑与”将它们合并为一个条件表达式,实际上只有一次条件检查,只不过有多个并列条件需要检查而已;
3.以卫语句取代嵌套条件表达式:两条分支都是正常行为,就应该使用形如 if...else...的条件表达式;如果某个条件极其罕见,就应 该单独检查该条件,并在该条件为真时立刻从函数中返回,卫语句能告知读者给某一条分支以特别的重视;
4.以多态取代条件表达式:基础逻辑也是最常用的,最基础的,将其放到基类,把每种变体逻辑单独放进一个子类;
5.引入特例:一个数据结构的使用者都在检查某个特殊的值,并且当这个特殊值出现时所做的处理也都相同。如果我发现代码库中有多处以同样方式应对同一个特殊值,我就会想要把这个处理逻辑收拢到一处;
6.引入断言:断言是一个条件表达式,应该总是为真。如果它失败,表示程序员犯了错误。断言的失败不应该被系统任何地方捕
捉。整个程序的行为在有没有断言出现的时候都应该完全一样。实际上,有些编程语言中的断言可以在编译期用一个开关完全禁用掉


IP属地:北京1楼2024-07-31 17:49回复