Type: concept
Confidence: 0.80
Created: 2026-04-25
Updated: 2026-04-25
Tags: 重构代码异味继承设计AI工程

拒绝遗赠

概述

拒绝遗赠是面向对象滥用类代码异味的一种,指子类没有充分利用继承来的属性和方法,或者重写了父类方法只是为了避免执行原方法,这表明继承关系设计不当。

关键内容

  1. 特征识别
  2. 子类没有使用继承来的某些方法或数据
  3. 子类重写父类方法只是为了不执行原有逻辑
  4. 继承被当作代码复用手段,而非真正的IS-A关系
  5. 子类中出现空的重写方法

  6. 负面影响

  7. 抽象层次不当
  8. 违反里氏替换原则
  9. 继承层次具有误导性
  10. 造成不必要的复杂性
  11. 破坏了继承的语义意义

  12. 重构策略

  13. Push Down Method:将方法下推到实际使用的子类
  14. Push Down Field:将字段下推到实际使用的子类
  15. Replace Subclass with Delegate:用委托代替继承
  16. Replace Inheritance with Delegation:用组合替代继承

  17. 根本原因

  18. 过早抽象,在真正需要之前就建立了继承层次
  19. 错误地将"has-a"关系建模为"is-a"关系
  20. 为了代码复用而滥用继承

来源

相关