重构
lulin27860
这个作者很懒,什么都没留下…
展开
-
重构-改善既有代码的设计(2.2)
第三章 代码的坏味道过长函数问题:函数需要关注的问题是什么解决:函数的长度不是关键,关键是函数“做什么”和“如何做”之间的语义距离问题:如何解决过长函数解决:最终效果是积极分解函数。99%的场合,通过Extract Method,找到函数中适合集中在一起的部分,提炼出新的函数。问题:提取函数遇到许多参数和临时变量怎么办解决:采用Replace With Query来消除原创 2014-03-05 09:50:08 · 1437 阅读 · 0 评论 -
重构-改善既有代码的设计(2.4)
第三章 代码的坏味道过长参数列-Long Parameter List问题:如果向已有对象发送一个请求就能取代一个对象解决:采用Replace Parameter Wtih Method。已有对象可能是函数所属类内的一个字段,也可能是另一个参数。问题:如果参数都来自于一个对象解决:采用Preserve Whole Object将对象传进去问题:如果某些数据缺乏合理的对象归属原创 2014-03-05 10:08:21 · 1271 阅读 · 0 评论 -
重构-改善既有代码的设计(2.6)
第三章 代码的坏味道散弹式修改-Shotgun Surgery问题:散弹式修改跟发散式变化解决:发散式变化是指“一个类受多种变化的影响”;而散弹式修改是指“一种变化引起多个类相应修改”问题:如何解决散弹式修改问题解决:用Move Method 和Move Field 把所有需要修改的代码放进同一个类中。如果没有合适的就创造一个。通常可以采用Inline Class。原创 2014-03-05 10:21:54 · 1485 阅读 · 0 评论 -
重构-改善既有代码的设计(2.7)
第三章 代码的坏味道依恋情结-Long Parameter List问题:函数对某个类的兴趣高过自己所在类的兴趣,焦点通常为数据。解决:采用Move Method。问题:函数对某个类的一个部分兴趣高过自己所在类的兴趣。解决:采用Extract Method。问题:如果函数用到了很多类的功能呢?解决:先采用Move Method将函数移到那个拥有最多被这个函数调用的数据的原创 2014-03-05 10:32:20 · 1406 阅读 · 0 评论 -
重构-改善既有代码的设计(2.3)
第三章 代码的坏味道过大的类-Large Class问题:出现太多的实例变量解决:Extract Class,将实例变量一起提炼至新类。如果这个类适合做子类,可以用Extract Subclass。问题:类的代码太多解决:将多余的东西消弭于类内部。也就是在类的内部采用Extract Class和Extract Subclass进行重构先。问题:如果类原创 2014-03-05 09:59:15 · 1289 阅读 · 0 评论 -
重构-改善既有代码的设计(1)
这段时间一直在看《重构-改善既有代码的设计》,综合了一些个人理解,特与大家分享,共勉!第一章 重构,第一个案例什么是重构?所谓重构(refactoring)是这样一个过程:在不改变代码行为的前提下,对代码做出修改,以改变程序的内部结构。重构需要依赖测试,好的测试是重构的根本。一个类可以在它的生命周期之内修改它的子类,但一个对象不可以在它的生命周期之内修改它的子类。利用State原创 2014-03-05 09:25:25 · 1428 阅读 · 0 评论 -
重构-改善既有代码的设计(2.1)
第三章 代码的坏味道重复代码问题:同一个类的两个函数含有相同的表达式解决:采用Extract Method提炼出重复的代码,然后让这两个地点都调用被提炼出来的那一段代码问题:两个互为兄弟的子类含有相同表达式解决:对这两个类采用Extract Method,然后再对被提炼出来的代码使用Pull Up Method,将他推入超类中。问题:两个互为兄弟的子类含有相似表达式解决原创 2014-03-05 09:40:01 · 1302 阅读 · 0 评论 -
重构-改善既有代码的设计(2.5)
第三章 代码的坏味道发散式变化-Divergent Change问题:如果一个类经常因为不同的原因在不同的方向上发生变化。比如,你看到一个类,当新增一个数据库,需要修改三个函数;新增一个金融工具,需要修改四个函数。解决:将类细化。遵循职责单一原则。找出某特定原因而造成的所有变化,然后用Extract Class将它们提炼到另一个类中。原创 2014-03-05 10:13:51 · 1340 阅读 · 0 评论