《重构》学习笔记五
大型重构的重要性
大型重构没有那些小动作那样立竿见影的效果,不过它可以帮助我们解决那些堆积了很久,影响范围又很大的问题。
?
Tease Apart Inheritance(梳理并分解继承体系)
用于处理混乱的继承体系——这种继承体系往往以一种令人迷惑的方式组合了数个不同方面的变化(variations)。
?
某个继承体系(inheritance hierarchy )同时承担两项责任。
建立两个继承体系,并通过委托关系(delegation)让其中一个可以调用另一个。
?
Convert Procedural Design to Object(将过程化设计转化为对象设计)
可以帮助你解决一个「古典」问题:如何处理程序性代码(procedural code )?
?
你手上有一些代码,以传统的过程化风格(procedural style)写就。
将数据记录(data records)变成对象,将行为分开,并将行为移入相关对象之中。
?
?
Separate Domain from Presentation(将领域和表述/显示分离)
将业务逻辑(business logic)与用户界面(user interface )隔离开来。
?
某些GUI class 之中包含了domain logic(领域逻辑)。
将domain logic(领域逻辑)分离出来,为它们建立独立的domain class。
?
Extract Hierarchy(提炼继承体系)
则可以将过于复杂的class 转变为一群subclass ,从而简化系统。
?
你有某个class 做了太多(过多)工作,其中一部分工作是以大量条件式完成的。
建立继承体系,以一个subclass 表示一种特殊情况。