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 анти патерн потому, что обычно инжектят как раз таки контейнер в какой нибудь из классов, отсюда и не понятно на самом деле какие у класса зависимости,
класс сам вытягивает нужные ему зависимости из контейнера. Более точно было бы описание зависимостей скажем через конструктор, но если этих зависимостей будет достаточно много
то конструктор разрастется


Мокать нужно сервисы, а не сам SL