
第5章重构列表103
5.1重构的记录格式103
5.2寻找引用点105
5.3这些重构手法有多成熟106
第6章重新组织函数109
6.1Extract Method(提炼函数)110
6.2Inline Method(内联函数)117
6.3Inline Temp(内联临时变量)119
6.4Replace Temp with Query(以查询取代临时变量)120
6.5Introduce Explaining Variable(引入解释性变量)124
6.6Split Temporary Variable(分解临时变量)128
6.7Remove Assignments to Parameters(移除对参数的赋值)131
6.8Replace Method with Method Object(以函数对象取代函数)135
6.9Substitute Algorithm(替换算法)139
第7章在对象之间搬移特性141
7.1Move Method(搬移函数)142
7.2Move Field(搬移字段)146
7.3Extract Class(提炼类)149
7.4Inline Class(将类内联化)154
7.5Hide Delegate(隐藏“委托关系”)157

7.6Remove Middle Man(移除中间人)160
7.7Introduce Foreign Method(引入外加函数)162
7.8Introduce Local Extension(引入本地扩展)164
第8章重新组织数据169
8.1Self Encapsulate Field(自封装字段)171
8.2Replace Data Value with Object(以对象取代数据值)175
8.3Change Value to Reference(将值对象改为引用对象)179
8.4Change Reference to Value(将引用对象改为值对象)183
8.5Replace Array with Object(以对象取代数组)186
8.6Duplicate Observed Data(复制“被监视数据”)189
8.7Change Unidirectional Association to Bidirectional(将单向关联改为双向关联)197
1.使用双向一对多关联,不使用单向一对多。两个双向信号灯之间才为一个双向区间,一个单向信号灯和一个双向信号灯之间仍为单向区间。5、 统计函数1.使用双向一对多关联,不使用单向一对多。
8.9Replace Magic Number with Symbolic Constant(以字面常量取代魔法数)204
8.10Encapsulate Field(封装字段)206
8.11Encapsulate Collection(封装集合)208
8.12Replace Record with Data Class(以数据类取代记录)217
8.13Replace Type Code with Class(以类取代类型码)218
8.14Replace Type Code with Subclasses(以子类取代类型码)223
8.15Replace Type Code with State/Strategy(以State/Strategy取代类型码)227
8.16Replace Subclass with Fields(以字段取代子类)232

第9章简化条件表达式237
9.1Decompose Conditional(分解条件表达式)238
9.2Consolidate Conditional Expression(合并条件表达式)240
9.3Consolidate Duplicate Conditional Fragments(合并重复的条件片段)243
9.4Remove Control Flag(移除控制标记)245
9.5Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式)250
9.6Replace Conditional with Polymorphism(以多态取代条件表达式)255
9.7Introduce Null Object(引入Null对象)260
9.8Introduce Assertion(引入断言)267
第10章简化函数调用271
10.1Rename Method(函数改名)273
10.2Add Parameter(添加参数)275
10.3Remove Parameter(移除参数)277
10.4Separate Query from Modifier(将查询函数和修改函数分离)279
10.5Parameterize Method(令函数携带参数)283
10.6Replace Parameter with Explicit Methods(以明确函数取代参数)285
10.7Preserve Whole Object(保持对象完整)288
10.8Replace Parameter with Methods(以函数取代参数)292
10.9Introduce Parameter Object(引入参数对象)295
10.10Remove Setting Method(移除设值函数)300

10.11Hide Method(隐藏函数)303
virtual函数基于vtable(内存空间),constructor函数如果是virtual的,调用时也需要根据vtable寻找,但是constructor是virtual的情况下是找不到的,因为constructor自己本身都不存在了,创建不到class的实例,没有实例,class的成员(除了public static/protected static for friend class/functions,其余无论是否virtual)都不能被访问了。工厂方法(factory method)模式:又称多态性工厂(polymorphic factory)模式或虚拟构造子(virtual constructor)模式。工厂方法(factory method)模式是类的创建模式,又称多态性工厂(polymorphic factory)模式java代码重构书籍,或虚拟构造子(virtual constructor)模式。
10.13Encapsulate Downcast(封装向下转型)308
10.14Replace Error Code with Exception(以异常取代错误码)310
10.15Replace Exception with Test(以测试取代异常)315
第11章处理概括关系319
11.1Pull Up Field(字段上移)320
11.2Pull Up Method(函数上移)322
11.3Pull Up Constructor Body(构造函数本体上移)325
11.4Push Down Method(函数下移)328
11.5Push Down Field(字段下移)329
11.6Extract Subclass(提炼子类)330
11.7Extract Superclass(提炼超类)336
11.8Extract Interface(提炼接口)341
11.9Collapse Hierarchy(折叠继承体系)344
11.10Form Tem Plate Method(塑造模板函数)345
11.11Replace Inheritance with Delegation(以委托取代继承)352
11.12Replace Delegation with Inheritance(以继承取代委托)355
第12章大型重构359
12.1Tease Apart Inheritance(梳理并分解继承体系)362

12.2Convert Procedural Design to Objects(将过程化设计转化为对象设计)368
12.3Separate Domain from Presentation(将领域和表述/显示分离)370
12.4Extract Hierarchy(提炼继承体系)375
第13章重构java代码重构书籍,复用与现实379
13.1现实的检验380
13.2为什么开发者不愿意重构他们的程序381
13.3再论现实的检验394
13.4重构的资源和参考资料394
13.5从重构联想到软件复用和技术传播395
13.6小结397
13.7参考文献397
第14章重构工具401
14.1使用工具进行重构401
14.2重构工具的技术标准403
14.3重构工具的实用标准405
14.4小结407
第15章总结409
参考书目413
要点列表417
索引419
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-116867-1.html
爱千玺
太棒了