"《重构-改善既有代码的设计(简体中文)》是Java高级程序员提升代码质量的重要参考资料,由侯捷翻译,分为‘台湾术语版’和‘大陆术语版’,其中大陆术语版开放了包括第6章以前的所有内容及索引,提供了重构的详细列表和实践指导。" 在编程和软件开发领域,重构是一项关键技能,它涉及对已有代码进行改进,以提升其设计、可读性和可维护性,而不改变其外在行为。本书《重构》深入探讨了这一主题,由Martin Fowler著,侯捷将其翻译成中文,旨在帮助Java开发者提高代码编写质量。 书中列出了多种重构技术,如: 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...**:这部分内容未完全给出,通常这个重构步骤涉及将大类的一部分功能抽离成新的类。 这些重构技术是提升代码质量的实用工具,通过应用它们,开发者可以逐步改进代码结构,使其更易于理解和维护。《重构》一书不仅列举了这些技术,还提供了如何实施的指导,以及在何时、为何要进行重构的洞察,对于任何希望提升代码质量的Java开发者来说,都是宝贵的资源。
![](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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 8
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](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)