习题1小步前行。挑选一种重构技术,并从中找出某一处,在此尽管可以采用粒度更大的步骤,不过更适于小步前行。■有关解决方案请见附录A。习题2简单设计。A.证明Beck对简单设计所指出的各个规则正确。B.这些规则为什么存在不同优...[继续阅读]
海量资源,尽在掌握
习题1小步前行。挑选一种重构技术,并从中找出某一处,在此尽管可以采用粒度更大的步骤,不过更适于小步前行。■有关解决方案请见附录A。习题2简单设计。A.证明Beck对简单设计所指出的各个规则正确。B.这些规则为什么存在不同优...[继续阅读]
无论是使用重构,还是在开发新的重构技术,都应当以一种适当的方式进行,即能够使系统从一个正常状态稳步前进到下一个正常状态。在进行重构时,我们倾向于小步骤但更安全(smallstepsbutsafer)的方法,而不是快速但往往不安全(fastbutn...[继续阅读]
●注释(Comments)●过长的方法(LongMethod)●过大的类(LargeClass)●过长的参数表(LongParameterList)...[继续阅读]
症状●代码中出现注释符号(∥或/*)。(有些IDE对不同类型的注释代码设置了不同的颜色,这对于区别注释会有所帮助。)原因注释之所以出现,最可能的原因是:作者认为某些东西没有说清楚,所以才增加了注释。有些注释特别有用:●指出...[继续阅读]
症状●存在大量的代码行。(只要看到超过5~10行代码的方法,我就会立即对其置疑)。原因我把这看作是Columbo并发症(Columbosyndrome)。Columbo是一个侦探,其口头禅总是“再多一点点”。对于方法也是类似的,自方法开始建立以来,在其发展...[继续阅读]
症状●存在大量实例变量●存在大量方法●存在大量代码行原因过大的类并非一蹴而就,往往是一次增大一点。作者不断地向类增加另一个新的功能,直到最终变得过于庞大。之所以会出现这个问题,有时是因为对于组成整个类的各部...[继续阅读]
症状●方法的参数多于1个或2个。原因可能是试图尽量减少对象之间的耦合。你的做法不是由被调用对象来了解类之间的关系,而是令调用者来确定所有一切;如此一来,方法所关注的就是有关信息(译者注:即由调用者提供的信息)要求它...[继续阅读]
习题7坏味道和重构。请考虑以下坏味道:A.注释B.过大的类C.过长的方法D.过长的参数表对于以下所列的各种重构,请指出它们可能对哪些坏味道的修正有所帮助(写出相应的表示字母):——复制受察数据——抽取类——抽取接口——抽取...[继续阅读]