Re: 《重构-改善既有代码的设计》笔记

本文探讨了代码重构的基本原则,强调了重构对于提升代码质量的重要性。文中详细介绍了多种重构技巧,包括双向可逆重构手法如ExtractMethod与InlineMethod之间的转换,以及单向重构手法如EncapsulateField等,旨在帮助开发者更好地理解如何通过重构改善代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此外代码的坏味道Bad smells一章,真是一顿营养丰富的大餐。Duplicated Code是代码腐化的万恶之源,Long Method、Large Class、Long Parameter List这些几乎就是旧社会臭婆娘的裹脚布,Divergent Change、Shotgun Surgery、Feature Envy、Inappropriate Intimacy这些简直就是指责不清勾肩搭背。等等。。。

重构,它为我们清除这些坏味道指明了方向,并且《重构》通过强调“重构是一种有纪律的、经过训练的、有条不紊的程序整理方法”,保证了重构过程的安全性和高效性。

在重构的手法中有相当一大部分是双向的、互逆的,也就是说在某种时候是你找我,而在另一些时候是我找你,比如Pull Up Field和Push Down Field,Pull Up Method和Push Down Method等,而另一些则是强调单向的、勇往直前的,比如Encapsulate Field、Remove Control Flag、Remove Parameter、Remove Assignments to Parameters、Replace Conditional with Polymorphism等。
在双向的、护逆的重构手法中,强调的是一种平衡,是职责清晰,角色明确。
而在强调单向的、勇往直前的重构手法中,突出的是使代码更容易理解、更容易扩展,更加具有面向对象性。

为了对比双向可逆的重构手法,以便突出其侧重点和权衡内容,下面进行列举
重新组织你的函数章节中
Extract Method——Inline Method
Inline Temp——Introduce Explaining Variable

在对象之间搬移特性章节中
Extract Class——Inline Class
Hide Delegate——Remove Middle Man
Introduce Foreign Method——Introduce Local Extension

重新组织数据章节中
Change Value to Reference——Change Reference to Value
Change Unidirectional Association to Bidirectional——Change Bidirectional Association to Unidirectional

简化条件表达式章节中

简化函数调用章节中
Add Parameter——Remove Parameter
Parameterize Method——Replace Parameter with Explicit Methods

处理概括关系章节中
Pull Up Field——Push Down Field
Pull Up Method——Push Down Method
Extract Subclass(Extract Superclass)——Collapse Hierarchy
Replace Inheritance with Delegation——Replace Delegation with Inheritance

在看这本书的过程中感觉这种互逆的挺多,列举之后发现没有之前感觉多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值