LINUX.ORG.RU

Dependency Injection

 ,


0

2

Используете ли вы интерфейсы, когда внедряете зависимость? Зачастую нам нужно просто внедрить зависимость в класс через конструктор, но создавать для этого интерфейс совсем не хочется. Как вы поступаете? Всетаки создаете интерфейс для зависимости или внедряете так. При условии, что вы не будете писать юнит тест на тот класс куда вы внедряете зависимость.

Ответ на: комментарий от EnterpriseMobility

- Когда потребитель ресурса не заботится о выборе/создании поставщика ресурса - это DI.

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

anonymous
()
Ответ на: комментарий от anonymous

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

Потребитель не отвечает за конфигурацию. Потребитель говорит, что ему нужно. Поставщик говорит, что у него есть. А конфигурация это отдельная сущность, которая связывает их.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Потребитель говорит, что ему нужно. Поставщик должен это реализовать. Т.е. поставщик зависит теперь от потребителя. Это и есть инверсия зависимостей.

Т.к. раньше было наоборот.

EnterpriseMobility
()
Ответ на: комментарий от Legioner

Потребитель говорит, что ему нужно.

То есть конфигурирует поставщика. Поставщик - это условная коробка, которая не знает что в ней будет лежать и предоставляет интерйес «наполнить объектами» и «использовать нужные объекты из коробки». Потребитель берет коробку, наполняет тем, чем надо и потом использует.

anonymous
()

Как вы поступаете?

Я использую глобальный репозитарий-синглтон.

no-such-file ★★★★★
()

ioc di - отдельная тема

для меня ioc - проброс зависимости снаружи

anonymous
()
Ответ на: комментарий от vertexua

Емнип, не сможет. По крайней мере с интерфейсами есть такой прикол что если в бин дефинишене объявлен интерфейс, а для инжекта ожидается класс, то будет NoSuchBeanDefinitionException.

f1xmAn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.