
重构(refactor)
iteye_12702
这个作者很懒,什么都没留下…
展开
-
1. 重构导论
[quote]任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码才是优秀的程序员。[/quote][b]一、什么是重构?[/b]重构是在不改变软件[b]可观察行为[/b]的前提下[b]改善其内部结构[/b]。[color=red]重构是[/color]一种经千锤百炼形成的有条不紊的程序整理[color=red]方法[/color],可以最大限度地减少整理过程中引入错误...2015-03-17 18:15:06 · 143 阅读 · 0 评论 -
2.1 代码的坏味道(上)
当闻到代码里的[color=red]坏味道[/color]时,你就可以考虑[color=red]重构[/color]了。[b]所谓的坏味道就是代码里看起来不符合设计难以理解难以修改的代码。[/b]关于“何时重构”并没有一个精确衡量标准。没有任何度量规矩比得上一个见多识广者的[color=red]直觉[/color],这里只能介绍一些[b]迹象[/b]何时可以用重构解决问题。我们必须培养自己的判...2015-03-23 23:12:38 · 223 阅读 · 0 评论 -
2.2 代码的坏味道(下)
[b]2.11 Parallel Inheritance hierarchies (平行继承体系)[/b]Parallel Inheritance Hierarchies其实是Shotgun Surgery 的特殊情况 。在这种情况下,每当你[b]为某个类增加一个子类,必须也为另一个类相应增加一个子类[/b]。如果你发现某个继承体系的类名称前缀和另一个继承体系的类名称前缀完全相同,便是闻到了这...2015-03-24 20:36:25 · 131 阅读 · 0 评论 -
3. 重新组织函数
重构,无外乎就是重新组织变量(实例变量,静态变量,局部变量,临时变量),表达式,函数,类,继承机制(extends, implements)等,以提高代码的可读性,可维护性等。代码世界里不希望看到高富帅,一切都以“小”为美。单纯的结构只做一件事,只因一件事而变化,变化时尽量只修改少量的地方,复杂功能也仅仅是借助群体的力量,以组合或集成的方式来扩展。我们这里从函数开始,介绍一些可以达成这种目标的方法...2015-03-29 10:13:49 · 108 阅读 · 0 评论 -
4. 在对象之间搬移特性
在对象的设计过程中,“[color=red]决定把责任放在哪儿[/color]”即使不是最重要的事,也是最重要的事之一。常常只需要使用[color=red]Move method和move field[/color]简单地移动对象行为,就可以解决这些问题。如果这两个手法都需要用到,建议先使用move field再使用move method。[b]类往往会因为承担[color=red]过多责...2015-03-31 17:40:41 · 111 阅读 · 0 评论 -
5. 重新组织对象(数据)
程序中处理的所有对象都是数据,所有抽象、算法都是为了表示数据、处理数据。下面我们就看看如何更好的组织数据。[b]5.1 Self Encapsulate Field (自封装字段)[/b]在同一个类中如果直接访问这个类的一个字段,则与字段之间的[color=red]耦合[/color]关系很深,为这个字段建立取值/设值函数,并且只以这些函数来访问字段。就如有一个原则“尽可能让所有的字段...2015-04-03 21:36:02 · 155 阅读 · 0 评论 -
7. 简化函数调用
函数调用再寻常不过了,一再强调的就是好的函数一定是只做一件事情的,只因为一个原因而改变的,因而也是容易命一个好名字的。[b]7.1 Rename method (函数改名)[/b]极力推荐的一种编程风格就是:[color=red]将复杂的处理过程分解为小函数[/color]。但是,如果做的不好,会费尽周折却弄不清楚这些小函数各自的用途。要避免这种麻烦,关键就在于[color=red]给...2015-04-21 21:54:10 · 165 阅读 · 0 评论