重构坏味道:数据泥团

数据泥团

症状

数据泥团中所有的数据字段就像小孩子,总喜欢成群结对地的待在一块
如果删掉众多数据字段中的一项,其他数据字段因而失去意义,就应该为它们产生一个新对象


数据泥团

病因

我们听说过:一个类应该是一个清楚的抽象,处理一些明确的责任。但是实际工作中,类会不断成长扩展。会在这加点新功能,那里加点数据,让本应该在一起的抽象散落在一个类的多个数据字段。

导致的健康问题

治疗

找出这些数据以字段形式出现的地方,把他们抽象成本该属于他们自己的类


重构手法
  • 如果一个类里有很多有关系的数据Field,那么就要考虑为这些有关系的数据建立一个新家
    尝试运用 Extract Class 创建数据新对象。
    B站实战视频
  • 如果函数参数应用很多有关系的Field
    尝试运用 Introduce Parameter Object 考虑让这些分散的参数变成参数对象
    B站实战视频-参考过长的参数列
    *如果一个函数引用的来自同一个对象的若干个参数作为参数,可以考虑引用对象,因为如果被调用的函数改变参数,必须修改这个函数的所有引用的地方
    尝试运用 Preserve Whole Object 保持对象完整
    B站实战视频-参考过长的参数列

康复

所有的分散在外面的数据字段,拥有的新的对象,得到新对象后,你就可以着手寻找依恋情结,然后相关的行为移动到这个新对象中。所有的类都将在它们小小的社会中充分发挥价值。

重构后

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容