与依赖注入一起使用base
关键字来推送注入到演示者的服务类的实例,如下所示。
class EmployeePresenter : BasePresenter
{
public EmployeePresenter (IEmployeeView view, IEmployee model, IMessageService messageService) : base (messageService)
{
//
}
//
}
现在我的目的是在MessageService
课程中使用BasePresenter
提供的服务。
这与依赖注入相同吗?或者这个正确的术语是什么?任何技术解释都将不胜感激!
答案 0 :(得分:1)
依赖注入仅仅是将依赖注入类中。通过构造函数,属性或方法。这课不是没有。请求那些依赖项(服务位置),但要注入它们。这些术语通常与Dependency Inversion Principle相关,因为依赖注入可用于遵守DIP。但是,你仍然可以在违反DIP的同时进行依赖注入。
在您的情况下,您将服务注入EmployeePresenter
,因此您正在此类中进行依赖注入。 BasePresenter
具有一个具有一个依赖关系的构造函数,EmployeePresenter
将依赖注入到BasePresenter
的构造函数中。所以是的,注入基类也是一种依赖注入形式。
请注意,虽然基类通常是一种设计气味,因为它们往往会成为大Single Responsibility Principle违规行为。当基类使用多个依赖项时,会发生这种情况。通常,您会发现不相关的操作(例如横切关注点)都放在基类中,基类变成某种God Object或Utility class。
不是将基类用于所有跨领域问题,而是通常有更多可维护和灵活的方式来应用这些问题。例如,使用decorators或aggregate services。