《重构:改善既有代码的设计》—重构列表

重构列表
重构:改善既有代码的设计
Add Parameter(添加参数)  

Change Bidirectional Association to Unidirectional(将双向关联改为单向关联)  

Change Reference to Value(将引用对象改为值对象) 

Change Unidirectional Association to Bidirectional(将单向关联改为双向关联)  

Change Value to Reference(将值对象改为引用对象) 

Collapse Hierarchy(折叠继承体系)

Consolidate Conditional Expression(合并条件表达式) 

Consolidate Duplicate Conditional Fragments(合并重复的条件片段)  

Convert Procedural Design to Objects(将过程化设计转化为对象设计)  

Decompose Conditional(分解条件表达式) 

Duplicate Observed Data(复制“被监视数据”)  

Encapsulate Collection(封装集合)  

Encapsulate Downcast(封装向下转型)  

Encapsulate Field(封装字段) 

Extract Class(提炼类) 

Extract Hierarchy(提炼继承体系) 

Extract Interface(提炼接口)  

Extract Method(提炼函数)  

Extract Subclass(提炼子类) 

Extract Superclass(提炼超类)  

Form Template Method(塑造模板函数)  

Hide Delegate(隐藏“委托关系”)  

Hide Method(隐藏函数)  

Inline Class(将类内联化)  

Inline Method(内联函数)  

Inline Temp(内联临时变量) 

Introduce Assertion(引入断言)  

Introduce Explaining Variable(引入解释性变量)  

Introduce Foreign Method(引入外加函数) 

Introduce Local Extension(引入本地扩展)  

Introduce Null Object(引入Null对象) 

Introduce Parameter Object(引入参数对象)  

Move Field(搬移字段)  

Move Method(搬移函数) 

Parameterize Method(令函数携带参数)  

Preserve Whole Object(保持对象完整) 

Pull Up Constructor Body(构造函数本体上移) 

Pull Up Field(字段上移) 

Pull Up Method(函数上移)  

Push Down Field(字段下移)  

Push Down Method(函数下移)  

Remove Assignments to Parameters(移除对参数的赋值)  

Remove Control Flag(移除控制标记) 

Remove Middle Man(移除中间人) 

Remove Parameter(移除参数)  

Remove Setting Method(移除设值函数) 

Rename Method(函数改名)  

Replace Array with Object(以对象取代数组)  

Replace Conditional with Polymorphism(以多态取代条件表达式) 

Replace Constructor with Factory Method(以工厂函数取代构造函数)  

Replace Data Value with Object(以对象取代数据值)  

Replace Delegation with Inheritance(以继承取代委托) 

Replace Error Code with Exception(以异常取代错误码)  

Replace Exception with Test(以测试取代异常)  

Replace Inheritance with Delegation(以委托取代继承) 

Replace Magic Number with Symbolic Constant(以字面常量取代魔法数)  

Replace Method with Method Object(以函数对象取代函数) 

Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式)  

Replace Parameter with Explicit Methods(以明确函数取代参数)  

Replace Parameter with Methods(以函数取代参数) 

Replace Record with Data Class(以数据类取代记录)  

Replace Subclass with Fields(以字段取代子类) 

Replace Temp with Query(以查询取代临时变量)  

Replace Type Code with Class(以类取代类型码)  

Replace Type Code with State/Strategy(以State/Strategy取代类型码)  

Replace Type Code with Subclasses(以子类取代类型码) 

Self Encapsulate Field(自封装字段)  

Separate Domain from Presentation(将领域和表述/显示分离) 

Separate Query from Modifier(将查询函数和修改函数分离) 

Split Temporary Variable(分解临时变量)  

Substitute Algorithm(替换算法)  

Tease Apart Inheritance(梳理并分解继承体系)  

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-22 09:19:58

《重构:改善既有代码的设计》—重构列表的相关文章

PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用_php技巧

思维导图 介绍 前几篇系列文章,我比较关注的是<PHP 杂谈<重构-改善既有代码的设计>之一 重新组织你的函数>,但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一.二. 今天谈得是"接口",此接口非"Interface",而是一个统称.我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口.--可能还有别的意思,毕竟我现

PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据_php技巧

思维导图 介绍    承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容.   这章主要针对数据的重构.   1.争论的声音--直接访问Field还是通过函数(Accessor)访问Field  2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with Object,把Array变成一个对象.--数据结构更清晰.      专业术语   accessor:访问者,存储器--在本文翻译为&quo

PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性_php技巧

思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类合并到其他类中) Ø Hide Delegate (隐藏委托关系) Ø Remove Middle Man ( 移除中间人) Ø Introduce Foreign Method (引入外加函数) Ø Introduce Local Extension (引入本地扩展)    介绍    承接上文P

PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数_php技巧

思维导图 点击下图,可以看大图. 介绍 我把我比较喜欢的和比较关注的地方写下来和大家分享.上次我写了篇<php 跟老大的对话>.还是有很多疑问,这书帮了我不少的忙. 如果你比较繁忙,或者懒得看文字,建议你直接看截图,也会有很大的收获的.你可以通过比较截图中的代码就能知道孰优孰劣了. 代码部分我为什么用图呢?因为我经常用手机看代码,博客园的代码在手机里乱七八糟的,还是看图比较舒服. 专业术语 我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性.以下的英文单词,你如果掌握了,与其

PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式_php技巧

思维导图 点击下图,查看大图.  介绍    条件逻辑有可能十分复杂,因此本章提供一些重构的手法,专门用来简化它们.   全文简述(你可直接跳过下面的内容) 核心重构:Decompose Conditional--分离"转辙逻辑"(switching logic)和"操作细节"(details)分离. 多处测试有相同结果:Consolidate Conditional Expresssion 条件代码中去掉重复成分:Consolidate Duplicate 标识特

《重构:改善既有代码的设计》目录—导读

内容提要 重构:改善既有代码的设计 本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善.书中给出了70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术.本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险. 本书适合软件开发人员.项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物. 版权声明 重构:改善既有代码的设计 Authorized translation from the

《重构—改善既有代码设计》——第二章重构原则——学习笔记

1:什么是重构? 重构是一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序内部结构.本质上说,重构就是[在代码写好之后改进它的设计]   2:为什么要对项目进行重构呢?重构对软件开发有什么好处,   为什么要重构呢,打个贴切的比方:我平时比较 懒散,屋子里面的东西都是随手乱放,时间长了,屋子里面就乱七八糟了.有时候到了自己也忍无可忍的时候,我就要大动干戈了,把该放哪儿的东西都整理到哪 儿,该扔掉的东西全部扔掉.一个项目也是如此,有时候可能是设计不到位:有时候可能是经过多人的修改,

《重构:改善既有代码的设计》—第1章1.1节起点

第1章 重构,第一个案例 重构:改善既有代码的设计 我该从何说起呢?按照传统做法,一开始介绍某个东西时,首先应该大致讲讲它的历史.主要原理等等.可是每当有人在会场上介绍这些东西,总是诱发我的瞌睡虫.我的思绪开始游荡,我的眼神开始迷离,直到主讲人秀出实例,我才能够提起精神.实例之所以可以拯救我于太虚之中,因为它让我看见事情在真正进行.谈原理,很容易流于泛泛,又很难说明如何实际应用.给出一个实例,就可以帮助我把事情认识清楚. 所以我决定从一个实例说起.在此过程中我将告诉你很多重构的道理,并且让你对重

《重构:改善既有代码的设计》—第2章2.1节何谓重构

第2章 重构原则 重构:改善既有代码的设计 前面所举的例子应该已经让你对重构有了一个良好的感受.现在,我们应该回头看看重构的关键原则,以及重构时需要考虑的某些问题. 2.1 何谓重构 我总是不太喜欢下定义,因为每个人对每样东西都有自己的定义.但是既然在写书,总得选择自己满意的定义.在重构这个概念上,我的定义以Ralph Johnson团队和其他相关研究成果为基础. 首先要说明的是:视上下文不同,"重构"这个词有两种不同的定义.你可能会觉得这挺烦人的(我就是这么想的),不过处理自然语言本