本节书摘来自异步社区《重构:改善既有代码的设计》一书中的第1章,第1.5节结语,作者【美】Martin Fowler,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.5 结语这是一个简单的例子,但我希望它能让你对于“重构怎么做”有一点感觉。例中我已经示范了数个重构手法,包括Extract Method (110)、Move Method (142)、Replace Conditional with Polymorphism (255)、Self Encapsulate Field (171)、Replace Type Code with State/Strategy (227)。所有这些重构行为都使责任的分配更合理,代码的维护更轻松。重构后的程序风格,将迥异于过程化风格——后者也许是某些人习惯的风格。不过一旦你习惯了这种重构后的风格,就很难再满足于结构化风格了。
这个例子给我们最大的启发是重构的节奏:测试、小修改、测试、小修改、测试、小修改……正是这种节奏让重构得以快速而安全地前进。
如果你看懂了前面的例子,就应该已经理解重构是怎么回事了。现在,让我们了解一些背景、原理和理论(好在不太多)。
[1] 本书写作于1999年。十年之后,各种主要的Java IDE都已经提供了良好的重构支持。——译者注
[2] 十年之后的今天,Java在这方面已经有所改进。——译者注
[3] 指的是switch语句内的case子句。——译者注
[4] 如图1-15。——译者注
[5] Ralph Johnson和另外三位先生Erich Gamma、Richard Helm、John Vlissides合写了软件开发界驰名的《设计模式》,人称四巨头(Gang of Four)。——译者注
[6] 程序中的_priceCode。——译者注
[7] 其中有类型相关的行为,也就是“判断是否为新片”那个动作。——译者注
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
相关资源:重构:改善既有代码的设计.[美]Martin Fowler(带详细书签).pdf