重构:改善既有代码的设计(简体中文版)

需积分: 9 1 下载量 69 浏览量 更新于2024-07-31 收藏 1.27MB PDF 举报
"重构-改善既有代码的设计(简体中文).pdf" 《重构:改善既有代码的设计》是一本经典的软件开发著作,由Martin Fowler撰写,旨在介绍如何通过一系列微小的改变,逐步提升现有代码的质量和可维护性。这本书强调的是在不改变代码外在行为的前提下,对代码结构进行优化,这一过程被称为“重构”。 书中的重构,是一种系统性的方法,它包含了多个具体的重构技术,如: 1. AddParameter(添加参数):在函数或方法中添加新的参数,以传递更多信息,简化内部逻辑。 2. ChangeBidirectionalAssociationtoUnidirectional(将双向关联改为单向):减少对象间的耦合度,使得一个对象不再需要知道另一个对象的更新。 3. ChangeReferencetoValue(将引用对象改为实值对象):将依赖于对象引用的情况改为直接使用值,以提高性能或简化代码。 4. ChangeUnidirectionalAssociationtoBidirectional(将单向关联改为双向):在某些情况下,增加双向关联可以增强代码的表达力和易用性。 5. ChangeValuetoReference(将实值对象改为引用对象):当需要对对象进行更复杂的操作时,将简单的值类型转换为引用类型。 6. CollapseHierarchy(折叠继承体系):简化类层次结构,减少不必要的子类。 7. ConsolidateConditionalExpression(合并条件式):减少复杂的条件判断,提高代码可读性。 8. ConsolidateDuplicateConditionalFragments(合并重复的条件片段):消除代码中的重复条件,确保一致性。 9. ConvertProceduralDesigntoObjects(将过程化设计转化为对象设计):利用面向对象的原则,将过程化的代码转换为更具有封装性和复用性的对象。 10. DecomposeConditional(分解条件式):将大的条件表达式分解为多个独立的函数或方法,使代码更加模块化。 11. DuplicateObservedData(复制“被监视数据”):当需要在多个地方使用同一数据时,创建一个公共的访问点。 12. EncapsulateCollection(封装群集):隐藏集合类的细节,提供一个更友好的接口来操作这些集合。 13. EncapsulateDowncast(封装“向下转型”动作):避免显式的类型转换,提供安全且易于使用的接口。 14. EncapsulateField(封装值域):隐藏类的内部状态,提供访问和修改状态的受控方式。 15. ExtractClass(提炼类):将一个大类中的职责拆分成多个更专注的小类。 16. ExtractHie...(这里省略了部分重构技术的名称,但它们遵循相同的模式,即改善代码结构和可读性) 通过这些重构技术,开发者可以逐步改进代码的结构,使其更易于理解、测试和维护。此外,书中还提供了关于何时、为何以及如何进行重构的指导原则,以及如何避免可能的风险,比如引入错误或破坏现有功能。 侯捷的中文版译本,考虑到了两岸不同的术语习惯,分别提供了“台湾术语版”和“大陆术语版”,确保了内容对中国读者的适用性。阅读这本书,对于任何希望提高代码质量、提升开发效率的软件工程师来说,都是极其宝贵的资源。