《重构-改善代码既有的设计》英文目录

  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索引

你可能感兴趣的:(算法,框架,测试,工具,Comments,Refactoring)