Разъяснение создания объекта внедрения зависимостей - PullRequest
0 голосов
/ 13 июня 2018

Я собираю учебный класс модульного тестирования для разработчиков на C #.Я могу отладить код и посмотреть, что происходит в некоторых простых примерах внедрения зависимостей.Но я не могу найти слова / фразы, чтобы точно описать, что происходит, когда мы создаем объект класса и передаем ему новый Сервис.

Два вопроса.

Чем это

var test = new Service();
Client client = new Client(test);

отличается от этого?

Client client = new Client(new Service());

И какой термин используется для Сервиса в этом примере?

new Client(new Service());

1 Ответ

0 голосов
/ 13 июня 2018
var test = new Service();
Client client = new Client(test);

В этом примере Service зависимость сохраняется в переменной и вводится в потребитель Client, с использованием инжектора конструктора .

Client client = new Client(new Service());

В этом примере зависимость Service вводится непосредственно в конструктор Client.

И какой термин используется для Службы в этом примере?

В этом случае Service зависимость и Client - это потребитель .Они оба компоненты .В случае, если Client зависит от IService, IService - это служба или абстракция , тогда как Service - это реализация или, в более общем случае: компонент .

A компонент - это класс приложения, который содержит логику приложения.Компоненты - это вокальная точка DI, поскольку вы строите графов объектов из компонентов .Противоположные или компоненты являются объектами, ориентированными на данные, такими как сущности, DTO, сообщения, модели представлений и т. Д. Они не содержат никакого поведения и обычно передаются через вызовы методов в инициализированных графах объектов .

Для полной терминологии см. Внедрение зависимостей в .NET .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...