重构,今天再来一杯

觉得今天学习的太少了,自己有点过意不去,又看了点。自打面向对象的编程以来,理论上条件判断的表达式应该很少出现,但是实际上来说,依旧不少,所以简化条件表达式我觉得也是比较重要的。

简化条件表达式

DecomposeConditional分解条件式,将与或非的组合条件提炼到一个单独的函数中,可读性较强,清楚明白。

ConsolidateConditionalExpression合并条件式,将条件不同但结果相同表达式合并成一个条件式,并且提炼到独立函数。

RemoveControlFlag移除控制标记,这条我可能对其中的return方式有点疑问,因为我觉得一个方法如果有返回值最好还是只写一个return,你可以将返回值放到一个变量中,然后在所有语句都执行完毕后(可以通过条件判断跳过某些语句,不完全覆盖函数内部语句),在统一return,这样对于返回值比较清晰,而且也很少应该继续执行但是直接返回的情况,避免了BUG的产生。

IntroduceNullObject引入Null对象,这个重构的方法比较值得深思,因为很多情况下我们在取得对象时不能保证他是否为Null,有很多非程序因素在里面不能考虑的很清楚,仅仅靠异常的捕获这样是不好的,如果每个输出的模型都能引用Null对象,自动截获为Null时的后续操作,这样就省去了很多逻辑上的校验判断。记住NullObject模式和SpecialCase模式。

posted @ 2012-05-16 23:05  Jason_Z  阅读(106)  评论(0)    收藏  举报