1.decompose conditional (分解条件)
在比较复杂的条件判断的方法中,如果有需要我们可以把条件换判断成方法,在不同分支中编写不同方法。
做法:
将if段提炼出来,构成一个独立函数。
将then段落和else段落都提炼出来,各自构成一个独立函数。
这样可以很好的突出条件逻辑,更加清楚的表明分支的作用,以及分支的原因。
2.consolidate conditional expression(合并条件分支)
有一系列的条件判断语句,确返回相同的结果或做了相同的事。我们应该将这一些列条件用 '|','&'或者三元操作符连接起来,并提炼成一个方法。
这样说明了代码实际只做了一次的检查,只不过是有个多个条件语句在同时执行。
另外将条件语句提炼成一个方法对理清代码意义非常有用,因为他把描述 “做什么” 换成了“为什么这样做”
3.consolidate duplicate conditional fragments(合并重复的条件代码)
如果你在不同的条件下确执行了相同的语句,你应该将语句移动刀条件语句以外的代码块,如果相同语句不只一句,你应该将这些代码重新组织成一个方法。
这样能很好体现那些东西是随条件的变化而变化的,那些是一成不变地。
4.remove control flag(移除控制标记)
用 continue break return 替换 flag变量。。
这样会使条件真正的用途清晰很多。
5.replace nested conditional with guard clauses (已卫语句替代嵌套条件表达式)
如果两个条件语句都是正常行为,就应该用if ...else;如果某个条件及其罕见,就应该单独检测该条件,并在该条件为真时,立刻从函数中返回。这样的单独检查常常被称为 guard clauses。
做法:
对于每个检查都放进一个 guard cluases ,guard cluases 要么从方法中返回,要么抛出异常。
replace nested conditional with guard cluases 的精髓在 给某一个条件特别的重视。如果用 if then else 所表达的是 if 和else 的分支同样重要。guard cluases 告诉读者 ,“这种情况很罕见,如果真的发生,执行别要的处理后退出”。
6.replace conditional witch polymorphism (以动态取代条件语句)
问题:手上有个条件表达式,它根据不同对象类型而选择不同的行为。
将这个条件表达式的每个分支放进一个子类的覆写函函数中,然后将原始函数声明为一个抽象函数。
分享到:
相关推荐
第9章 简化条件表达式 237 9.1 Decompose Conditional(分解条件表达式) 238 9.2 Consolidate Conditional Expression(合并条件表达式) 240 9.3 Consolidate Duplicate Conditional Fragments(合并重复的...
书中讨论的重构方法包括将代码片段提炼到独立的函数或类中、调整对象之间的关系、简化条件表达式等等。作者详细讲解了重构的时机、步骤以及如何处理重构过程中可能出现的问题。在实施重构时,书中给出了大量的实践...
《重构-改善既有代码设计》是一本专注于软件开发过程中代码优化和重构的权威书籍,尤其对Android、Java、C和C++等编程语言的开发者具有很高的参考价值。本书旨在通过详细的实例和深入的分析,教导读者如何有效地改进...
《重构——改善既有代码的设计》是Martin Fowler的经典著作,它为软件开发人员提供了一套系统化的重构技术,旨在提升代码质量、可读性和维护性。在这个案例中,我们聚焦于一个影片出租点的程序,通过逐步的重构过程...
《重构-改善既有代码的设计》是一本由Martin Fowler所著的经典IT著作,专注于软件开发中的重构实践和技术。这本书深入探讨了如何通过一系列微小而精确的步骤改进代码结构,提高代码质量,降低维护成本,同时保持软件...