一坨代码理不清
分组,然后把一组代码移动到新的方法中
行数越多,越难懂
易懂,方法名代替了注释
减少重复
隔离的代码,更少出错
方法体比方法本身更直观
直接用方法体替换方法
方法仅仅是一个委托
重构过程使得一个方法越来越短小,失去了存在的必要性。
某个表达式不好懂或者需要注释
把表达式的值赋值给一个变量,变量的名字解释表达式
增加了代码的可读性,当然复杂性也提高了,注意权衡。
一个临时变量只被用到一次,且对其赋值的表达式也足够易懂 。
用一个临时变量保存表达式的结果供后续使用。但在多个方法中都重复这个代码。
把表达式抽成一个方法。替换所有使用变量的地方。换句话说,还是抽方法。
抽一个变量和抽一个方法都有为表达式注释的功能。显然抽方法可以被多个方法调用,减少了重复代码。
如果临时变量为了 cache 一个复杂计算的结果,那变为查询或 inline 临时变量显然不是好主意。
一个临时变量用以保存若干个表达式的中间值;
使用不同的变量保存不同的值。
这样的代码会阻碍你对代码做出改变。
一个元素只做一件事,可以大大提高可维护性。
给方法的参数赋值,和把一个变量多次赋值一样,是代码改变的阻力
使用本地变量代替参数
方法有大量彼此相关的本地变量,是的抽方法变得困难或者难堪-因为参数列表会变得很长!
新建一个类来提供这个方法,这样可以把临时变量转化成字段,这样就可以容易的把方法分割成多个。
通过添加一个额外的类分治问题,并且为进一步抽方法提供了可能性。
这个问题分治也可以通过工具类,但工具类仍然无法分治这些堆在一起的参数。而显然,引入方法对象则更明智。
像抽方法,抽变量一样,带来了复杂性,所以要权衡。
有更好的算法
原文:http://www.cnblogs.com/yoogo/p/5252442.html