esase
Новичок
Позвольте мне суммировать знания полученные чтением этого топика:
-------------------------
1. Между DiC и Service Locator разницы по сути нет.
2. Dic становится Service Locator если мы инжектим этот контейнер в качестве зависимости в какой нить класс? Вместо того, чтобы указать более точные
зависимости верно??
Отсюда вопросы:
1. А если у класса не ясные зависимости что ему передавать? к примеру я делаю класс payment основанных на одном интерфейсе, но заранее я не могу сказать
к примеру, что класс 1 будет юзать класс request, а другой и request и какую нить модель для выбора доп. данных.
Как тут обойтись без SL? Проще передать ему контейнер и пусть он сам решает какие зависимости ему нужны. Как вариант можно использовать DI фреймворк который по четким зависимостям
на пример в конструкторе определит, что нужно подставить.
2. Service Locator анти патерн потому, что обычно инжектят как раз таки контейнер в какой нибудь из классов, отсюда и не понятно на самом деле какие у класса зависимости,
класс сам вытягивает нужные ему зависимости из контейнера. Более точно было бы описание зависимостей скажем через конструктор, но если этих зависимостей будет достаточно много
то конструктор разрастется
-------------------------
1. Между DiC и Service Locator разницы по сути нет.
2. Dic становится Service Locator если мы инжектим этот контейнер в качестве зависимости в какой нить класс? Вместо того, чтобы указать более точные
зависимости верно??
Отсюда вопросы:
1. А если у класса не ясные зависимости что ему передавать? к примеру я делаю класс payment основанных на одном интерфейсе, но заранее я не могу сказать
к примеру, что класс 1 будет юзать класс request, а другой и request и какую нить модель для выбора доп. данных.
Как тут обойтись без SL? Проще передать ему контейнер и пусть он сам решает какие зависимости ему нужны. Как вариант можно использовать DI фреймворк который по четким зависимостям
на пример в конструкторе определит, что нужно подставить.
2. Service Locator анти патерн потому, что обычно инжектят как раз таки контейнер в какой нибудь из классов, отсюда и не понятно на самом деле какие у класса зависимости,
класс сам вытягивает нужные ему зависимости из контейнера. Более точно было бы описание зависимостей скажем через конструктор, но если этих зависимостей будет достаточно много
то конструктор разрастется