大类
概述
大类是代码异味的一种,指那些规模过大、职责过多的类。这种类通常包含大量实例变量和方法,违反单一职责原则,导致难以理解、测试和维护。
关键内容
- 特征识别:
- 实例变量过多(通常超过7-10个)
- 方法数量过多(通常超过15-20个)
- 类名含糊不清(如Manager、Handler、Processor等)
- 类中的方法没有使用全部字段
-
代码行数超过300行
-
负面影响:
- 违反单一职责原则,承担了过多责任
- 难以进行有效的单元测试
- 修改容易影响无关的功能
- 局部功能难以复用
-
代码理解困难,增加了维护成本
-
重构策略:
- Extract Class:提取类的部分功能到新的独立类
- Extract Subclass:通过继承提取特定功能
- Extract Interface:定义接口来明确职责
- Move Method:将方法移到更合适的类中
-
Move Field:将字段移到更合适的类中
-
检测指标:
代码行数 > 300 方法数量 > 15 字段数量 > 10
来源
- Martin Fowler — 《重构:改善既有代码的设计》
- 代码异味 — 重构指导书
相关
- 代码异味 — 大类所属的异味类别
- 重构 — 解决方法
- 单一职责原则 — 设计原则
- Extract Class — 具体重构技巧
- 长函数 — 相似的膨胀问题