Инъекция зависимости с абстрактным классом - PullRequest
0 голосов
/ 31 мая 2018

Относится ли внедрение зависимостей только к случаю с интерфейсами?Предположим, у нас есть конструктор класса с параметром, объявленным как Interface, чтобы мы могли передать реализацию при создании класса.То же самое мы можем сделать, когда создаем абстрактный класс и класс, который расширяет его.Может ли второй случай также называться Dependency Injection или этот метод относится только к использованию интерфейса?

1 Ответ

0 голосов
/ 05 июня 2018

Внедрение зависимостей вообще не имеет никакого отношения к интерфейсам.Проще говоря, он просто заявляет, внедряет проклятые зависимости во время выполнения, как вы хотите , не управляя встроенными зависимостями времени компиляции .

Это похоже на что-то подобное.Я покупаю автомобиль с двигателем, который хочу, не покупая автомобиль со встроенным двигателем (двигатель, который они хотят).Так что все дело в конфигурируемости создания объекта во время выполнения.

Так что совершенно неважно, внедряете ли вы тип параметра как интерфейс, абстрактный класс или даже конкретный класс.

Нов любом случае, хотя он не имеет никакого отношения к DI, если вы используете интерфейс или абстрактный класс вместо конкретного типа класса, вы можете ввести в свой код более обобщенное (посредством полиморфизма).

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