简化表达式
重构改善既有代码设计,简化表达式章节浓缩:
使用“分解条件表达式”将复杂的条件逻辑分成若干小块;如果发现若干条件表达式返回的结果相同就用“合并条件表达式”将他们提取到一个公共的函数,统一返回结果;将条件分支之间公共的行为提出为公共调用,使用“合并重复的条件判断”;直接使用return或者break代替控制标志,让程序尽早的结束;通过卫语句简较少条件语句的嵌套,从而降低程序复杂度;当条件表达式语句不同的对象类型,执行不同的逻辑时,使用多态消除条件表达式。
1、 分解条件表达式(Decompose Conditional)
将复杂的条件表达式提炼出独立的函数,通过好的函数名,表达条件的意思。
2、 合并条件表达式(Consolidate ConditionalExpression)
如果一系列条件都是返回同样的结果,那么就将这些表达表达式提到一个独立的函数,然后一起返回这个结果
3、 合并重复的条件判断(Consolidate DupilcateConditional Fragments)
将条件表达式的每个分支里都有的代码,提为公共代码
4、 移除控制标志(Remove Control Flag)
对于作为控制标志的布尔值,应该使用return或者break代替
5、 以卫语句取代嵌套条件表达式(Replace Nestedconditional with Guard Clauses)
使用卫语句(如果满足条件则直接返回),尽量减少条件的嵌套层数
6、 以多态取代条件表达式(Replace Conditional withPolymorphism)
条件表达式根据对象类型的不同,而执行不同的行为,可以将这个条件表达式的每个分支放进一个子类内的覆写函数中,然后将原始函数申明为抽象函数
7、 引入Null对象(Introduce Null object)
很多地方再三检测某个对象是否为null,可以将null值替换为null对象,null对象还可以加入一些默认值
8、 引入断言(introduce Assertion)
引入断言类,提高代码的可阅读性