简单易懂读《重构》

阅读: 评论:0

简单易懂读《重构》

简单易懂读《重构》

过大的类

  • 含义:
    单个类做太多的事,分工不分明,重复代码多。
  • 坏处:
    可读性差,重则影响系统性能。
  • 目标:
    根据类内功能进行分类,把类提炼成多个类。
  • 实现方法:
    • 尽量把做相同类型工作的方法从原类中分离出来形成一个新类,考虑使用Extract Class(提炼类),如果某些函数适合作为一个子类,考虑使用Extract Subclass(提炼子类)
    • 如果一个类有太多代码,可以考虑这个类别人是如何使用的,然后考虑使用Extract Interface(提炼接口),为每一个使用方式提炼出一个接口,可以帮助你看清楚如何分解这个类。

本文涉及的重构方法

Extract Class (提炼类)
Extract Subclass (提炼子类)
  • 作用:
    把类中的某些可以放到子类做的事提取出来,放到子类中,优化代码结构,提高可读性.
  • 步骤:
  1. 创造一个新类,继承这个类。
  2. 为这个子类提供构造函数,可以通过super调用父类的构造函数,如果子类不考虑给其他人访问到,考虑使用 Replace Constructor with Factory Method(以工厂函数取代构造函数)
  3. 把调用父类构造函数的地方,看一下,如果需要的是这个新的子类,则改为调用新的构造函数。如果子类需要的构造函数参数和父类不同,或者子类构造函数不需要父类的某些参数,可以使用**Rename Method(函数改名)**来处理。如果不再需要父类的实例,可以将父类声明为抽象类。
  4. 运用 Push Down Method(函数下移) 和**Push Down Field(字段下移)**将原来类里的函数和字段移到子类里。
  5. 如果某些字段现在可以依靠继承特性来获取值,先用Self Encapsulate Field(自封装字段)避免直接使用他们,然后把他们的取值函数用多态特性函数替换。可以用Replace Conditional with Polymorphism(以多态取代条件函数) 重构。
  6. 编译,测试
  • 重构思路:
    当某个类涉及的方法函数过多,这个类的实例中的某些方法函数只在某些条件下被使用,可以尝试把该类作为父类,部分方法函数可以提取出来作为子类,把原来调用到这个类的实例的地方替换为对应子类。
Extract Interface(提炼接口)
  • 作用:
    把类中某些共用的函数方法提炼成接口,该类实现这个接口。可以优化代码结构.
  • 步骤:
  1. 新建一个空的接口
  2. 在接口中声明该提炼类的共通操作
  3. 让相关的类实现这些接口
  4. 调整使用者的调用代码,改为使用这些接口
  • 重构思路:
    某些类中,有些方法函数可能有其他类共用的方法,可以把这些方法声明为接口,并把这些类改为实现这个接口,再把调用的代码改为引用接口,可以使代码接口更加清晰,扩展性更强。

本文发布于:2024-01-30 16:11:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170660230121237.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:易懂   重构   简单
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23