此外代码的坏味道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
在看这本书的过程中感觉这种互逆的挺多,列举之后发现没有之前感觉多。
分享到:
相关推荐
重构-改善既有代码的设计(高清版)pdf 重构-改善既有代码的设计(高清版)pdf 重构-改善既有代码的设计(高清版)pdf 重构-改善既有代码的设计(高清版)pdf
重构-改善既有代码的设计--高清版.pdf
《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法...
重构-改善既有代码的设计 重构-改善既有代码的设计 重构-改善既有代码的设计 重构-改善既有代码的设计
一直很喜欢重构这本书,但是由于自己记性不太好,书看过之后其中的方法总是记不住,于是想如果有电子版的重构书就好了,工作中遇到重构的问题可以随时打开查阅。在网上搜索了许久,发现重构这本书有英文chm版本的,...
重构-改善既有代码的设计(高清带书签版)
《重构-改善既有代码的设计》.chm
王者归来之《重构-改善既有代码的设计 chm 中文版》经典王者 王者程序员真经!
重构--改善既有代码的设计 文字版 epub格式
重构——改善既有代码设计,经典文档,架构师必须教程
重构-改善既有代码的设计,清晰完整中文版,讲解重构过程中的方法以及注意方向。
java开发经典书籍,重构--改善既有代码的设计_中文版 java开发经典书籍,重构--改善既有代码的设计_中文版 java开发经典书籍,重构--改善既有代码的设计_中文版
重构-改善既有代码的设计(含中文PDF,英文chm)
重构----改善既有代码的设计(完整中文扫描版PDF)