Представьте, что вы вводите одно соединение с базой данных в несколько классов обслуживания. Теперь они разделяют то, что по сути является глобальным изменяемым состоянием. Как с этим справляются структуры DI? Они:
- Заморозить зависимость перед внедрением?
- Совместно использовать только неизменяемые объекты?
- Обернуть каждую зависимость в декоратор, чтобы точно указать, от чего зависит?
Я попытался найти это и немного удивлен, что нашел не так много. Не стесняйтесь предоставлять ссылки.
По теме: https://en.wikipedia.org/wiki/Principle_of_least_privilege