美文网首页
重构读书笔记-7总结

重构读书笔记-7总结

作者: MR_Model | 来源:发表于2019-06-21 10:16 被阅读0次

    重构第七章

    总结

    如章节名所说,在对象之间搬移特性,本章所解决的问题主要是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总结

          本文链接:https://www.haomeiwen.com/subject/wfweqctx.html