Я добавляю инъекцию зависимостей к моему коду, потому что он делает код намного проще Unit test через насмешку.
Тем не менее, я требую, чтобы объекты выше моей цепочки вызовов, чтобы знать объекты дальше по цепочке вызовов.
Разве это нарушает Закон Деметры? Если это имеет значение?
например: класс A имеет зависимость от интерфейса B, реализация этого интерфейса для использования вводится в конструктор класса A. Любой, кто хочет использовать класс A, теперь должен также иметь ссылку на реализацию B И может вызывать его методы, непосредственно значащие и знающие его субкомпоненты (интерфейс В)
Википедия говорит о законе Деметры: "Основное понятие состоит в том, что данный объект должен как можно меньше предполагать о структуре или свойствах чего-либо еще (включая его подкомпоненты)".