Я пытаюсь понять внедрение зависимости с точки зрения "Глобальное состояние - зло" . Глобального состояния можно избежать путем внедрения зависимости, так как зависимость затем может быть изменена только в локальной области действия функции / класса, в которую вводится зависимость. Это верно, если зависимость передается по значению.
Но передача зависимости по ссылке / указателю все же позволит другим частям / системам изменить состояние зависимости, внедренной в течение срока ее службы в классе / функции, в которую она внедрена.
Передача по ссылке неправильный способ введения зависимости? Должны ли мы владеть зависимостью через unique_ptr как в C ++? (Какая альтернатива в Java?) Как правильно вводить зависимость и как мы можем избежать рассуждений о состоянии gloabl за пределами лексической области вводимой зависимости?