重构读书笔记-7总结

重构第七章

总结

如章节名所说,在对象之间搬移特性,本章所解决的问题主要是class之间的关系、class的职责分类之类的问题。

1.Move Method(搬移函数):你的程序中,有个函数与其所驻class之外的另一个class进行更多交流:调用后者,或者被后者调用
2.Move Field(搬移值域):你的程序中,某个field(值域)被其所驻之外的另一个class更多的用到
3.Extract Class(提炼类):某个class做了应该由两个classes做的事
4.Inline Class(将类内联化):你的某个class没有做太多的事情(没有承担足够责任)
5.Hide Delegate(隐藏委托):客户端直接调用server object(服务对象)的delegate class。
6.Remove Middle Man(移除中间人):某个类做了过多的简单委托动作(simple delegation)
7.Introduce Foreign Method(引用外加函数):你所使用的server class需要几个额外函数,但你无法修改这个class。
8.Introduce Local Extension(引入本地扩展):你所使用的server class需要许多额外函数,但你无法修改这个class 。

读书第一遍重构思路

Move Method(搬移函数)和Move Field(搬移值域)一般情况下需要一同使用,因为method和Field一般都不是独立,他们拥有着相互依赖的东西,可能需要同时搬移。
Extract Class(提炼类)和Inline Class(将类内联化)将class的职责规划的更加的合理。不过它们的底层使用的方法还是Move Method(搬移函数)和Move Field(搬移值域)方法。
Hide Delegate(隐藏委托)和Remove Middle Man(移除中间人)是对委托函数处理的两种方法。它们的目的相同,而实际实现完全相反,在实际重构过程中,需要针对实际的环境,进行动态的调整。
Introduce Local Extension(引入本地扩展)是Introduce Foreign Method(引用外加函数)的扩展版本,他使得新特性独立到一个单独的类中,可以使得程序结构清晰,不过还是需要注意Introduce Local Extension(引入本地扩展)两种方法中的问题,谨慎重构。

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!

你可能感兴趣的:(重构读书笔记-7总结)