我正在为C#开发人员组建一个单元测试培训课程。我可以通过代码调试,看看在一些简单的依赖注入示例中发生了什么。但我无法找到单词/短语来准确描述创建类对象时传递的内容并将其传递给新服务。
两个问题。
这是怎么回事?
var test = new Service();
Client client = new Client(test);
与此不同?
Client client = new Client(new Service());
此示例中的服务使用的术语是什么?
new Client(new Service());
答案 0 :(得分:2)
var test = new Service(); Client client = new Client(test);
在此示例中,Service
依赖关系存储在变量中并注入到使用者< / strong> Client
,使用构造函数注入。
Client client = new Client(new Service());
在此示例中,Service
依赖关系直接注入Client
的构造函数。
本例中服务使用的术语是什么?
在这种情况下,Service
是依赖,Client
是消费者。它们都是组件。如果Client
取决于IService
,IService
是服务或抽象,而Service
则是实施,或更一般地说:组件。
组件是包含应用程序逻辑的应用程序类。组件是DI的重点,因为您构建了组件的对象图。相反或组件是以数据为中心的对象,例如实体,DTO,消息,视图模型等。它们不包含任何行为,通常通过初始化对象图上的方法调用传递强>
有关完整的术语,请参阅Dependency Injection in .NET。