不同接口的相似类
概述
不同接口的相似类是代码异味的一种,指两个或多个类执行相似的功能但使用了不同的方法名或接口,造成了不必要的重复实现。
关键内容
- 特征识别:
- 两个类执行相同或非常相似的功能
- 相同概念使用了不同的方法名
- 理论上可以互相替换使用
-
功能重复但接口不一致
-
负面影响:
- 相似功能的重复实现
- 缺乏统一的公共接口
- 难以在类之间进行切换
- 增加了学习和维护成本
-
代码库膨胀
-
重构策略:
- Rename Method:重命名方法使其更加一致
- Move Method:将方法移动到更合适的位置
- Extract Superclass:提取共同的超类
-
Extract Interface:提取共同的接口
-
解决目标:
- 统一接口设计
- 建立明确的抽象层次
- 减少重复代码
- 提高类的可替换性
来源
- Martin Fowler — 《重构:改善既有代码的设计》
- 代码异味 — 重构指导书