如何学习 随时挑一个目标 没把握就停下来 学习原路返回 二重奏,和别人一起重构 要点列表 第7页如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便 地达成目的,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。 第8页重构前,先检查自己是否有一套可靠的测试机制。这些测试必须
13.1 现实的检验 13.2 为什么开发者不愿意重构他们的程序 重构以求短期利益 降低重构带来的开销 安全的进行重构 13.3 再论现实的检验 13.4 重构的资源和参考资料 13.5 从重构联想到软件复用和技术传播
12.1 Tease Apart Inheritance (梳理并分解继承体系) 某个继承体系同时承担两项责任. 建立两个继承体系,并通过委托关系让其中一个可以调用另一个. 12.2 Convert Procedural Design to Object(将过程化设计转化为对象设计) 你手上有一些传
有一批重构手法专门用来处理类的概括关系(generalization,即继承关系),其中主要是将函数上下移动于继承体系之中。Pull Up Field(320)和Pull Up Methar(322)都用于将特性向继承体系的上端移动,Push Down Method(328)和Push Down
条件逻辑有可能十分复杂,因此本章提供一些重构手法,专门用来简化它下 们。其中一项核心重构就是Decompose Conditinal(238),可将一个复杂的条件逻辑分成若干小块。这项重构很重要,因为它使得"分支逻辑"和"操作细节"分离。 本章的其余重构手法可用以处理另一些重要问题∶如果你
本章将介绍几个能让你更轻松处理数据的重构手法。很多人或许会认为Self Encapsulate Fild(171)有点多余,但是关于"对象应该直接访问其中的数据,抑或应该通过访问函数来访问"这一问题,争论的声音从来不曾停止。有时候你确实需要访问函数,此时就可以通过SelfEncapsulate
在对象的设计过程中,决定吧责任放在哪儿 即使不是最重要的事,也是最重要的事之一.我使用对象技术已经十多年了,但还是不能一开始就保证做对.这曾经让我很烦恼,但现在我知道,在这种情况下,可以运用重构,改变自己原先的设计. 7.1 Move Method(搬移函数) 你的程序中,有个函数与其所驻类之外的另
6.1 Extract Method(提炼函数) 将代码放进一个独立的函数中,并让函数名称解释该函数的用途 动机 提炼函数式最常用的手法之一.当我看见一个过长的函数或者一段需要注释才能让人理解用途的代码,我就会将这段代码放进一个独立的函数中. 保证函数名与函数体的语义距离最小. 做法 创造一个新函数