You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在基类中实例化子类对象的代码异味名称是什么?

代码异味名称及分析

这段代码存在的核心代码异味是基类依赖子类(Base Class Depends on Derived Class),同时严重违反了面向对象设计中的依赖倒置原则(Dependency Inversion Principle)。

问题核心拆解

  • 基类Base在自身的Execute方法中直接实例化并调用子类Child的方法,但Child本身继承自Base——这种设计完全颠倒了继承关系的逻辑:正常设计中应为子类依赖基类的抽象能力,此处却变成基类绑定了具体的子类实现。
  • 该设计带来的负面影响:
    • 基类与子类形成强耦合,修改子类的实现逻辑可能直接影响基类的行为
    • 无法通过替换其他子类实现来扩展功能,违背了开闭原则
    • 形成循环依赖链,代码的可维护性、可测试性大幅降低

对应设计原则的违背说明

依赖倒置原则要求:上层抽象模块不依赖下层具体实现模块,二者都应依赖抽象;抽象不应依赖细节,细节应依赖抽象。这段代码中,作为抽象层的基类直接依赖了作为具体实现的子类,完全违背了这一核心设计原则,属于典型的不良面向对象设计。

内容的提问来源于stack exchange,提问作者caramel1995

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 19:52:30