за собой кучу классов. Вот есть класс А, нам нужно получить в нем класс Б через такую реализацию. Что нужно для тестов или использования в другом месте класса А? Правильно, тащить этот сервис локатор вместе с кучей классов и мокать все для тестов/вырезать для переиспользования. И не важно, провайдит он их по имени или через методы.
разница между di и service locator в том что, локатор не знает про то кому нужны зависимости, выши объекты зависят от локатора получая из него зависимости, в di наоборот ваши классы не зависят от него, кто то снаружи знает какие зависимости нужны объекту и отдает их нему, ваш объект ничего не знает про di
Обсуждают сегодня