
重构-改善既有代码的设计
HDPCOMEON
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重新组织函数----Extra Method(提炼函数)
你有一段代码可以被组织在一起并独立出来 讲这段代码放在一个独立函数中,并让函数名称解释该函数的用途 范例:无局部变量 void printOwing(double amount){ printBanner(); //printDetail System.out.println("name:"+_name); System.out.println("amount:"+amount);原创 2014-12-05 11:15:04 · 1135 阅读 · 0 评论 -
重新组织函数--Inline Method(内联函数)
一个函数的本体与名称同样清晰易懂 在函数调用点插入函数本体,然后移除该函数。 int getRating(){ return (moreThanFiveLateDeliveries()?2:1); } boolean moreThanFiveLateDeliveries(){ _numnerOfLateDeliveries>5; } int getR原创 2014-12-05 12:04:50 · 715 阅读 · 0 评论 -
重新组织函数--Introduce Explaining Variable(引入解释性变量)
你有一个复杂的表达式。 将该复杂表达式(或其一部分)的结果放进一个临时变量,以此变量名称来解释表达式用途。原创 2014-12-05 14:52:04 · 795 阅读 · 0 评论 -
重新组织函数--Substitute Algorithm(替换算法)
你想要把某一个算法替换为另一个更清晰的算法。 将函数本体替换为另一个算法。原创 2014-12-05 16:21:08 · 995 阅读 · 0 评论 -
重新组织函数--Replace Method with Method Object(以函数对象取代函数)
你有一个大型函数,其中对局部变量的使用使你无法采用Extra Method() 将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的字段。然后你可以在同一个对象中将这个大型函数分解为多个小型函数。 Class Order... double price(){ double primaryBasePrice; double secondaryBasePrice; doub原创 2014-12-05 16:01:32 · 737 阅读 · 0 评论 -
重新组织函数--以查询取代临时变量(Replace Temp with Query)
你的程序以一个临时变量保存某一表达式的运算结果 将这个表达式提炼到一个独立函数中。将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可以被其他函数使用。 double basePrice=_quantity*_itemPrice; if(basePrice>1000){ return basePrice*0.95; else return basePrice*0.原创 2014-12-05 14:17:36 · 904 阅读 · 0 评论 -
重新组织函数--Split Temporary Variable(分解临时变量)
你的程序有某个临时变量被赋值超过一次,它既不是循环变量,也不是被用于收集计算结果。 针对每次赋值,创建一个独立、对应的临时变量。原创 2014-12-05 15:20:03 · 782 阅读 · 0 评论 -
在对象之间搬移特性---搬移函数
你的程序中,有个函数与其所驻类之外的另一个类进行更多交流:调用后者,或被后者调用 在该函数最常引用的类中建立一个有着类似行为的新函数。将旧函数变成一个单纯的委托函数。 ,或是将旧函数完全移除。原创 2014-12-08 10:32:51 · 1064 阅读 · 0 评论 -
在对象之间搬移特性---Hide Delegate(隐藏委托关系)
客户通过一个委托类来调用另一个对象。 在服务类上建立客户所需的所有函数,用以隐藏委托关系。 动机: 封装即使不是对象的最关机特性,也是最关机特性之一。“封装”意味着每个对象都应该少了解系统的其他部分。如此以来,一旦发生变化,需要了解这一变化的就比较少---这会使系统比较容易进行。 任何学过对象技术的人都知道:虽然Java将字段声明为public,但你还是应该隐藏对象的字段。原创 2014-12-12 14:50:10 · 1132 阅读 · 0 评论