重构
tanhaiyuan
这个作者很懒,什么都没留下…
展开
-
6.4 Replace Temp with Query(以查询取代临时变量)
概括以一个临时变量保存某一个表达式的运算结果。将这个表达式提炼到一个独立函数汇总。将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可被其它函数使用。 例子double basePrice = _quantity * _itemPrice;if(basePrice > 1000) return basePrice*0.95;原创 2013-11-27 13:44:38 · 1077 阅读 · 0 评论 -
6.5 Introduce Explaining Variable(引入解释性变量)
概括 你有一个复杂的表达式。 将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名来解释表达式用途。 例子if((platform.toUperCase().indexOf("MAC") > -1) && (browser.toUperCase().indexOf("IE") > -1) && wa原创 2013-11-27 14:10:14 · 1292 阅读 · 0 评论 -
6.1 Extract Method(提炼函数)
概括有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。 例子void printOwing(double amount){ printBanner(); //print details System.out.println("name:" + _name); System.out.p原创 2013-11-27 13:18:20 · 1022 阅读 · 0 评论 -
6.2 Inline Method(内联函数)
概括一个函数的内部代码与名称同样清晰易懂。在函数调用点插入函数本体,然后移除该函数。 例子int getRating(){ return (moreThanFiveLateDeliveries()) ? 2 : 1;}boolean moreThanFiveLateDeliveries(){ return _numberOfLateD原创 2013-11-27 13:20:41 · 1103 阅读 · 0 评论 -
6.3 Inline Temp(内联临时变量)
概括一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构方法。将所有对该变量的引用替换为对它赋值的那个表达式本身。 例子double basePrice = anOrder.basePrice();return (basePrice > 1000)重构之后return (anOrder.basePrice() > 1000)原创 2013-11-27 13:22:25 · 1575 阅读 · 0 评论 -
6.6 Split Temporary Variable(分解临时变量)
概括 某个临时变量被赋值超过一次,且它既不是循环变量,也不是被用于收集计算结果。 针对每次赋值,创造一个独立,对应的临时变量。 例子double temp = 2 * (_height + _width);System.out.println(temp);temp = _height * _width;System.原创 2013-11-28 17:27:16 · 1174 阅读 · 0 评论 -
6.7 Remove Assigments to Parameters(移除对参数的赋值)
概括代码对一个参数进行赋值。以一个临时变量取代该参数的位置。 例子int discount(int inputVal, int quantity, int yearTodate){ if(inputVal > 50) inputVal = -2;}重构后int discount(int i原创 2013-11-28 17:28:11 · 1289 阅读 · 0 评论