Type: concept
Confidence: 0.85
Created: 2026-04-25
Updated: 2026-04-25
Tags: 重构代码异味数据组织AI工程

数据泥团

概述

数据泥团是代码异味的一种,指相同的数据项(通常是3个或更多)在多个地方反复一起出现的现象。这暗示着应该创建一个新的对象来封装这些相关的数据。

关键内容

  1. 特征识别
  2. 同样的3个以上字段反复一起出现
  3. 参数总是成对或成组传递
  4. 类中的字段子集总是一起使用
  5. 相似的数据结构在多处重复定义
  6. 数据项之间存在明显的逻辑关联

  7. 负面影响

  8. 逻辑重复,违反DRY原则
  9. 缺乏抽象,没有封装相关功能
  10. 难以扩展和维护
  11. 暗示有隐藏的类应该存在
  12. 当需要修改相关数据时,多处都需要修改

  13. 重构策略

  14. Extract Class:提取相关的字段和行为到新类
  15. Introduce Parameter Object:将相关参数封装成对象
  16. Preserve Whole Object:传递整个对象而不是分离的值

  17. 重构示例: ``` // 数据泥团:坐标 (x, y, z) function movePoint(x, y, z, dx, dy, dz) { } function scalePoint(x, y, z, factor) { } function distanceBetween(x1, y1, z1, x2, y2, z2) { }

// 提取 Point3D 类 class Point3D { constructor(x, y, z) { } move(delta) { } scale(factor) { } distanceTo(other) { } } ```

来源

相关