在其基类中声明并初始化子类类型的对象

问题描述 投票:0回答:1

以下代码所产生的代码气味的名称是什么?我尝试用谷歌搜索以下代码气味的实际名称,但无济于事。

我搜索它的原因是因为我看到有人在他们的代码中犯了这种罪,我想通过向他们展示一篇讨论此代码气味的文章来说服他们这是一种代码气味。

现在很难通过口头告诉某人他们的理性是错误的来说服他们,我必须向他们发送一篇在线文章,告诉他们他们错了。

public class Base
{
   public Execute(string params)
   {
      Child c = new Child();
      c.Run(params);
   }
}
public class Child : Base
{
    void Run(string params)
    {
      //Do something
    }
}
class object oop inheritance object-oriented-analysis
1个回答
0
投票

一个服务直接实例化另一个服务违反了依赖倒置原则,无论实例化的类是子类还是与实例化器无关。

父级 --> 子级实例化的情况具有循环依赖的额外味道,因为每个类都引用另一个类。

© www.soinside.com 2019 - 2024. All rights reserved.