版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、RefactoringImproving the D,打即 ofExisKing Code重构改善既有代码的设计(H) Martin Fowler 云 糕节译软件幵友的不巧经典生动阚述构康理和貝体融法 通程務页进曲到踽高手必须修炼的裁笈人 ixe5电 mwH rwil4 TllftOM r«Z内容简介本书清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了 何时以及何地应该开始挖掘代码以求改善。书中给出了70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构 准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。本书适合软
2、件开发人员、项目管理人员等阅读,也可作为高等院校计算机 及相关专业师生的参考读物。目录Chapter 1 : Refactoring , a First Example 重构,第一个例子The Starting Point 起点The First Step in Refactoring 重构第一步Decomposing and Redistributing the Statement Method 分解并重组 slalemenl 方法Replacing the Conditional Logic on Price Code with Polymorphism 用多态代 替价格条件逻辑代码Fin
3、al Thoughts 结语Chapter 2 : Principles in Refactoring 重构原则Defining Refactoring 何谓重构Why Should You Refactor? 为何重构When Should You Refactor? 何时重构What Do I Tell My Manager? 怎样说服经理Problems with Refactoring 重构的问题Refactoring and Design 重构与设计Refactoring and Performance 重构与性能代码坏昧Where Did Refactori ng Come Fro
4、m? 重构的起源Chapter 3:Bad Smells in Code(by Kent Beck and Martin Fowler)Duplicated Code 重复代码Long Method过长方法Large Class 过长类Long Parameter List 过长参数列表Divergent Change 发散式变化Shotgun Surgery 霰弹式修改Feature Envy 特性依恋Data Clumps 数据泥团Primitive Obsession 基本类型偏执Switch Statements switch 语句Parallel Inheritance Hierar
5、chies 平行继承体系Lazy Class 冗余类Speculative Generality 理论上的一般性Temporary Field 临时字段Message Chains 消息链Middle Man 中间人Inappropriate Intimacy 过度亲密Alternative Classes with Different Interfaces 接口不同的等效类Incomplete Library Class 不完整的库类Data Class 数据类Refused Bequest 拒绝继承Comments 注释过多Chapter 4:Building Tests 构建测试The
6、Value of Self-testing Code 自测试代码的重要性The JUnit Testi ng Framework Jun it 测试框架Addi ng More Tests添加更多测试Chapter 5 : Toward a Catalog of Refactorings 重构目录Format of the Refactorings 重构描述的格式Finding References 寻找引用How Mature Are These Refactorings? 这些重构的成熟度如何Chapter 6:Composing Methods 组合方法Extract Method 提取
7、方法Inline Method 内联方法Inline Temp 内联临时变量*Replace Temp with Query 用查询方法代替临时变量Introduce Explaining Variable 引入解释性变量Split Temporary Variable 分离临时变量*Remove Assignments to Parameters 去除参数赋值Replace Method with Method Object 用方法对象代替方法Substitute Algorithm 替换算法Chapter 7:Moving Features Between Objects 在对象之间移动特
8、性 *Move Method 移动方法Move Field 移动字段Extract Class 提取类Inline Class 内联类Hide Delegate 隐藏委托类Remove Middle Man 去除中间人Introduce Foreign Method 引入外加方法*Introduce Local Extension 引入本地扩展类Chapter 8:Organizing Data 组织数据Self Encapsulate Field 自圭寸装字段Replace Data Value with Object 用对象代替数据值Cha nge Value to Refere nee将
9、值对象改为引用对象Change Reference to Value 将引用对象改为值对象Replace Array with Object 用对象代替数组Duplicate Observed Data 重复被观察数据*Change Unidirectional Associationto Bidirectional 将单向关联改为 双向 Change Bidirectional Association to Unidirectional 将双向关联改为单向 *Replace Magic Number with Symbolic Constant 用字面常量代替魔数 Encapsulate F
10、ield 圭装字段Encapsulate Collection 圭装集合Replace Record with Data Class 用数据类代替 记录*ReplaceType Code with Class 用类代替类型码Replace Type Code with Subclasses 用子类代替类型码Replace Type Code with State/Strategy 用 State/Strategy 代替类型码Replace Subclass with Fields 用字段代替子类Chapter 9 :Simplifying Conditional Expressions 简化条
11、件语句Decompose Conditional 分解条件语句Consolidate Conditional Expression 合并条件语句Consolidate Duplicate Conditional Fragments 合并重复的条件 片段Remove Control Flag 去除 控制标志Replace Nested Conditional with Guard Clauses 用守卫语句代替嵌套条件语 句Replace Conditional with Polymorphism 用多态代替条件语句Introduce Null Object 引入 Null 对象Introduc
12、e Assertion 引入断言Chapter 10 : Maki ng Method Calls Simpler 简化方法调用Ren ame Method重命名方法Add Parameter添加参数Remove Parameter 去除参数Separate query from Modifier 将查询方法与修改方法分离Parameterize Method 参数化方法Replace Parameter with Explicit Methods 用显式方法代替参数Preserve Whole Object 保持对象完整Replace Parameter with Method 用方法代替参
13、数Introduce Parameter Object 引入参数对象Remove Setting Method 去除设置方法Hide Method 隐藏方法Replace Constructor with Factory Method 用工厂方法代替构造器Encapsulate Downcast 封装向下转型Replace Error Code with Exception 用异常代替错误码Replace Exception with Test 用测试代替异常Chapter 11:Dealing with Generalization 处理泛化关系Pull Up Field 上移字段Pull
14、UP Method 上移方法Pull Up Constructor Body 上移构造器主体Push Down Method 下移方法Push Down Field 下移字段Extract Subclass 提取子类Extract Superclass 提取超类Extract Interface 提取接口Collapse Hierarchy 合并继承层次Form Template Method 形成 Template MethodReplace Inheritanee with Delegation 用委托代替继承Replace Delegation with Inheritanee 用继承代
15、替委托Chapter 12:Big Refactorings(by Kent Beck and Martin Fowler) 大型重构 Tease Apart Inheritance 分解继承 层次Convert Procedural Design to Objects 将过程式设计 转换为 面向对象Separate Domain from Presentation 将领域 逻辑与表 现分离Extract Hierarchy 提取继承 层次Chapter 13:Refactoring ,Reuse,and Reality(by William Opdyke) 重构,复 用与现实A Realit
16、y Check 现实的 检验Whv Are Developers Reluctant to Refactor Their Programs ? 开发人员为何 不愿重构程序A Reality Check(Revisited) 再谈现 实的检验Resources and References for Refactoring 重构的 资源和参考 文献Implications Regarding Software Reuse and Technology Transfer 对软件复用 与技术 传播的意义A Final Note 结语References 参考文献Chapter 14 :Refactoring Tools(by Don Roberts and John Brant) 重构工具 Refactoring
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年个人投资合同标准版本(三篇)
- 2025年二年级语文教师个人工作小结(3篇)
- 2025年五年级班主任期末工作总结范例(二篇)
- 2025年个人租车给公司合同协议(2篇)
- 2025年产业技术合作协议经典版(三篇)
- 产业园办公区设计合同
- 书法教室装修合作协议范本
- 住宅精装修水电施工合同
- 水泥运输车辆调度协议
- 厂房改造工程劳务协议
- 全名校北师大版数学五年级下册第三单元达标测试卷(含答案)
- 新员工入职通识考试(中软国际)
- 四星级酒店工程样板房装修施工汇报
- 博士后进站申请书博士后进站申请书八篇
- 华为携手深圳国际会展中心创建世界一流展馆
- 2023版思想道德与法治专题2 领悟人生真谛 把握人生方向 第3讲 创造有意义的人生
- 全过程工程咨询服务技术方案
- GB/T 41509-2022绿色制造干式切削工艺性能评价规范
- 土木工程毕业设计(论文)-五层宿舍楼建筑结构设计
- 青年卒中 幻灯
- 典型倒闸操作票
评论
0/150
提交评论