Метафора, которая застряла со мной при программировании систем, отличных от DI, - это «человек, играющий со своими игрушками». Человек, являющийся объектом, и игрушки человека являются тем, что создает объект, хранит, инициализирует и манипулирует. Игрушки могут отправлять события, когда они достигают определенного состояния, но они ничего не знают о человеке, использующем их; это всего лишь маленькие черные ящики с переключателями управления, которые составляют их интерфейсы. Человек может слушать события из игрушек и реагировать, манипулируя их интерфейсами. Человек может делать все, что захочет, со своими игрушками, но он, вероятно, не должен вмешиваться со своими внутренностями, потому что они могут сломаться.Какая хорошая метафора для инъекций зависимостей?
Разрушение, которое DI вызывает на моей метафоре, заключается в том, что он превращает игрушки в сознательных существ, которые знают их владельца, человека, использующего их. Игрушки могут манипулировать этим человеком, но человек ничего не знает о том, как они работают и даже не заботятся. Человек просто владеет игрушками и ожидает, что игрушки будут манипулировать им/ею на собственном удовлетворении игрушек.
WTF ?? Это звучит ужасно!
Что такое хорошая ментальная метафора, которую они использовали, чтобы думать о том, как работают системы DI?
Является ли ссылка нарушенной? –
@DavidAndreoletti спасибо за головы. Я нашел его снова и загрузил копию в SO, а не просто ссылку. – Finglas