C# 使用'base'关键字将服务推送到基类

C# 使用'base'关键字将服务推送到基类,c#,oop,dependency-injection,mvp,base-class,C#,Oop,Dependency Injection,Mvp,Base Class,与依赖项注入一起,我使用base关键字推送一个服务类的实例,该实例被注入到演示者中,如下所示 class EmployeePresenter : BasePresenter { public EmployeePresenter (IEmployeeView view, IEmployee model, IMessageService messageService) : base (messageService) { // } // } 这样做的

与依赖项注入一起,我使用
base
关键字推送一个服务类的实例,该实例被注入到演示者中,如下所示

class EmployeePresenter : BasePresenter
{
    public EmployeePresenter (IEmployeeView view, IEmployee model, IMessageService messageService) : base (messageService)
    {
        //
    }

    //
}
这样做的目的是现在我可以在我的
BasePresenter
课程中使用
MessageService
提供的服务


这与依赖注入相同吗?否则,这个词的正确名称是什么?任何技术解释将不胜感激

依赖项注入只是将依赖项注入到类中。通过构造函数、属性或方法。该类不要求这些依赖项(服务位置),而是将它们注入。这些术语通常与相关,因为依赖注入可用于坚持DIP。但是,您仍然可以在违反DIP的同时进行依赖项注入

在您的例子中,您正在将您的服务注入到您的
EmployeePresenter
中,因此您正在这个类中进行依赖项注入。
BasePresenter
有一个具有一个依赖项的构造函数,
EmployeePresenter
将依赖项注入到
BasePresenter
的构造函数中。是的,注入基类也是依赖注入的一种形式

但请注意,基类通常是一种设计气味,因为它们往往成为严重的违规行为。当基类使用多个依赖项时,就会发生这种情况。通常,您会看到不相关的操作,例如横切关注点,都被放在基类中,基类成为某种or

与对所有横切关注点使用基类不同,通常有更易于维护和灵活的方法来应用这些关注点。例如使用或