重构,今天再来一杯
觉得今天学习的太少了,自己有点过意不去,又看了点。自打面向对象的编程以来,理论上条件判断的表达式应该很少出现,但是实际上来说,依旧不少,所以简化条件表达式我觉得也是比较重要的。
简化条件表达式
DecomposeConditional分解条件式,将与或非的组合条件提炼到一个单独的函数中,可读性较强,清楚明白。
ConsolidateConditionalExpression合并条件式,将条件不同但结果相同表达式合并成一个条件式,并且提炼到独立函数。
RemoveControlFlag移除控制标记,这条我可能对其中的return方式有点疑问,因为我觉得一个方法如果有返回值最好还是只写一个return,你可以将返回值放到一个变量中,然后在所有语句都执行完毕后(可以通过条件判断跳过某些语句,不完全覆盖函数内部语句),在统一return,这样对于返回值比较清晰,而且也很少应该继续执行但是直接返回的情况,避免了BUG的产生。
IntroduceNullObject引入Null对象,这个重构的方法比较值得深思,因为很多情况下我们在取得对象时不能保证他是否为Null,有很多非程序因素在里面不能考虑的很清楚,仅仅靠异常的捕获这样是不好的,如果每个输出的模型都能引用Null对象,自动截获为Null时的后续操作,这样就省去了很多逻辑上的校验判断。记住NullObject模式和SpecialCase模式。

浙公网安备 33010602011771号