《重构》简体中文版第6章开放:提升现有代码设计
《重构-改善既有代码的设计》是一本极其重要的编程教材,由侯捷编著,专为编程学习者设计,提供了一系列实用的代码重构技术。这本书的核心内容围绕如何优化已有的代码结构,提升代码质量,保持其可读性和可维护性。 本书的章节涵盖了多个关键的主题,例如: 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)** - 将共享行为和数据抽取到单独的类中,遵循单一职责原则。 这些重构技术不仅适用于特定语言,而且是软件工程中的通用实践,可以帮助开发者不断优化代码库,降低维护成本。通过阅读本书,读者可以掌握如何识别和实施这些重构策略,从而提升自己的编程技能和项目质量。无论是对于初学者还是经验丰富的开发人员,这本书都是提升代码质量和团队协作效率的重要参考。
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 7
- 资源: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)