重构
重构封面图

重构

(美) 福勒 (Fowler,M.) , 著

出版社:人民邮电出版社

年代:2007

定价:69.0

书籍简介:

面向对象大师Martin Fowler及其专家级合作者在将40多种常用解决方案转化成模式后,为我们提供了这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的图书。本书叙述深入浅出,采用大量UML图进一步阐明有关概念。前面介绍企业应用的背景知识,如分层架构、Web表现、业务逻辑、数据库映射、并发、会话、分布策略等。在此基础上,随后的各章分别对与这些背景知识相关的设计模式进行了详细的介绍,并配以详细的Java代码或C#代码示例。

书籍目录:

Chapter1:Refactoring,aFirstExample重构,第一个例子

TheStartingPoint起点

TheFirstStepinRefactoring重构第一步

DecomposingandRedistributingtheStatementMethod分解并重组slalemenl方法

ReplacingtheConditionalLogiconPriceCodewithPolymorphism用多态代替价格条件逻辑代码

FinalThoughts结语

Chapter2:PrinciplesinRefactoring重构原则

DefiningRefactoring何谓重构

WhyShouldYouRefactor?为何重构

WhenShouldYouRefactor?何时重构

WhatDoITellMyManager?怎样说服经理

ProblemswithRefactoring重构的问题

RefactoringandDesign重构与设计

RefactoringandPerformance重构与性能

WhereDidRefactoringComeFrom?重构的起源

Chapter3:BadSmellsinCode(byKentBeckandMartinFowler)代码坏昧

DuplicatedCode重复代码

LongMethod过长方法

LargeClass过长类

LongParameterList过长参数列表

DivergentChange发散式变化

ShotgunSurgery霰弹式修改

FeatureEnvy特性依恋

DataClumps数据泥团

PrimitiveObsession基本类型偏执

SwitchStatementsswitch语句

ParallelInheritanceHierarchies平行继承体系

LazyClass冗余类

SpeculativeGenerality理论上的一般性

TemporaryField临时字段

MessageChains消息链

MiddleMan中间人

InappropriateIntimacy过度亲密

AlternativeClasseswithDifferentInterfaces接口不同的等效类

IncompleteLibraryClass不完整的库类

DataClass数据类

RefusedBequest拒绝继承

Comments注释过多

Chapter4:BuildingTests构建测试

TheValueofSelf-testingCode自测试代码的重要性

TheJUnitTestingFrameworkJunit测试框架

AddingMoreTests添加更多测试

Chapter5:TowardaCatalogofRefactorings重构目录

FormatoftheRefactorings重构描述的格式

FindingReferences寻找引用

HowMatureAreTheseRefactorings?这些重构的成熟度如何

Chapter6:ComposingMethods组合方法

ExtractMethod提取方法

InlineMethod内联方法

InlineTemp内联临时变量

*ReplaceTempwithQuery用查询方法代替临时变量

IntroduceExplainingVariable引入解释性变量

SplitTemporaryVariable分离临时变量

*RemoveAssignmentstoParameters去除参数赋值

ReplaceMethodwithMethodObject用方法对象代替方法

SubstituteAlgorithm替换算法

Chapter7:MovingFeaturesBetweenObjects在对象之间移动特性

*MoveMethod移动方法

MoveField移动字段

ExtractClass提取类

InlineClass内联类

HideDelegate隐藏委托类

RemoveMiddleMan去除中间人

IntroduceForeignMethod引入外加方法

*IntroduceLocalExtension引入本地扩展类

Chapter8:OrganizingData组织数据

SelfEncapsulateField自封装字段

ReplaceDataValuewithObject用对象代替数据值

ChangeValuetoReference将值对象改为引用对象

ChangeReferencetoValue将引用对象改为值对象

ReplaceArraywithObject用对象代替数组

DuplicateObservedData重复被观察数据

*ChangeUnidirectionalAssociationtoBidirectional将单向关联改为双向

ChangeBidirectionalAssociationtoUnidirectional将双向关联改为单向

*ReplaceMagicNumberwithSymbolicConstant用字面常量代替魔数

EncapsulateField封装字段

EncapsulateCollection封装集合

ReplaceRecordwithDataClass用数据类代替记录

*ReplaceTypeCodewithClass用类代替类型码

ReplaceTypeCodewithSubclasses用子类代替类型码

ReplaceTypeCodewithState/Strategy用State/Strategy代替类型码

ReplaceSubclasswithFields用字段代替子类

Chapter9:SimplifyingConditionalExpressions简化条件语句

DecomposeConditional分解条件语句

ConsolidateConditionalExpression合并条件语句

ConsolidateDuplicateConditionalFragments合并重复的条件片段

RemoveControlFlag去除控制标志

ReplaceNestedConditionalwithGuardClauses用守卫语句代替嵌套条件语句

ReplaceConditionalwithPolymorphism用多态代替条件语句

IntroduceNullObject引入Null对象

IntroduceAssertion引入断言

Chapter10:MakingMethodCallsSimpler简化方法调用

RenameMethod重命名方法

AddParameter添加参数

RemoveParameter去除参数

SeparatequeryfromModifier将查询方法与修改方法分离

ParameterizeMethod参数化方法

ReplaceParameterwithExplicitMethods用显式方法代替参数

PreserveWholeObject保持对象完整

ReplaceParameterwithMethod用方法代替参数

IntroduceParameterObject引入参数对象

RemoveSettingMethod去除设置方法

HideMethod隐藏方法

ReplaceConstructorwithFactoryMethod用工厂方法代替构造器

EncapsulateDowncast封装向下转型

ReplaceErrorCodewithException用异常代替错误码

ReplaceExceptionwithTest用测试代替异常

Chapter11:DealingwithGeneralization处理泛化关系

PullUpField上移字段

PullUPMethod上移方法

PullUpConstructorBody上移构造器主体

PushDownMethod下移方法

PushDownField下移字段

ExtractSubclass提取子类

ExtractSuperclass提取超类

ExtractInterface提取接口

CollapseHierarchy合并继承层次

FormTemplateMethod形成TemplateMethod

ReplaceInheritancewithDelegation用委托代替继承

ReplaceDelegationwithInheritance用继承代替委托

Chapter12:BigRefactorings(byKentBeckandMartinFowler)大型重构

TeaseApartInheritance分解继承层次

ConvertProceduralDesigntoObjects将过程式设计转换为面向对象

SeparateDomainfromPresentation将领域逻辑与表现分离

ExtractHierarchy提取继承层次

Chapter13:Refactoring,Reuse,andReality(byWilliamOpdyke)重构,复用与现实ARealityCheck现实的检验

WhvAreDevelopersReluctanttoRefactorTheirPrograms?开发人员为何不愿重构程序

ARealityCheck(Revisited)再谈现实的检验

ResourcesandReferencesforRefactoring重构的资源和参考文献

ImplicationsRegardingSoftwareReuseandTechnologyTransfer对软件复用与技术传播的意义

AFinalNote结语

References参考文献

Chapter14:RefactoringTools(byDonRobertsandJohnBrant)重构工具

RefactoringwithaTool使用工具重构

TechnicalCriteriaforaRefactoringTool重构工具的技术标准

PracticalCriteriaforaRefactoringTool重构工具的实用标准

WrapUp结语

Chapter15:PuttingItAllTogether(byKentBeck)集大成

References参考文献

ListofSoundbites要点列表

Updates更新内容

Index索引

内容摘要:

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

书籍规格:

书籍详细信息
书名重构站内查询相似图书
丛书名图灵程序设计丛书
9787115168047
如需购买下载《重构》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位人民邮电出版社
版次1版印次1
定价(元)69.0语种简体中文
尺寸26装帧平装
页数 246 印数

书籍信息归属:

重构是人民邮电出版社于2007.10出版的中图分类号为 TP311.52 的主题关于 软件开发-英文 的书籍。