使用`base`关键字将服务推送到基类

时间:2014-08-20 12:01:03

标签: c# oop dependency-injection mvp base-class

与依赖注入一起使用base关键字来推送注入到演示者的服务类的实例,如下所示。

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

    //
}

现在我的目的是在MessageService课程中使用BasePresenter提供的服务。

这与依赖注入相同吗?或者这个正确的术语是什么?任何技术解释都将不胜感激!

1 个答案:

答案 0 :(得分:1)

依赖注入仅仅是将依赖注入类中。通过构造函数,属性或方法。这课不是没有。请求那些依赖项(服务位置),但要注入它们。这些术语通常与Dependency Inversion Principle相关,因为依赖注入可用于遵守DIP。但是,你仍然可以在违反DIP的同时进行依赖注入。

在您的情况下,您将服务注入EmployeePresenter,因此您正在此类中进行依赖注入。 BasePresenter具有一个具有一个依赖关系的构造函数,EmployeePresenter将依赖注入到BasePresenter的构造函数中。所以是的,注入基类也是一种依赖注入形式。

请注意,虽然基类通常是一种设计气味,因为它们往往会成为大Single Responsibility Principle违规行为。当基类使用多个依赖项时,会发生这种情况。通常,您会发现不相关的操作(例如横切关注点)都放在基类中,基类变成某种God ObjectUtility class

不是将基类用于所有跨领域问题,而是通常有更多可维护和灵活的方式来应用这些问题。例如,使用decoratorsaggregate services