Я читал через Misko Hevery's Guide: Writing Testable Code.Кто несет ответственность за присоединение слушателей к схеме инъекций без инициализации?
Я определенно покупаю инъекцию зависимостей как отличный инструмент для повышения тестируемости и многого использую в своем коде. Однако, читая первую часть руководства «Flaw #1: Constructor does Real Work», я нахожу, что все еще немного нечетко о том, как вы предполагаете прослушивать прослушиватели событий.
Предположим, у меня есть класс, который для правильной работы необходимо подключить слушателя к одному из аргументов, переданных через инжекцию зависимости конструктора. Согласно руководству, конструктор должен только присваивать свои аргументы переменным-членам и не выполнять другую работу. Кроме того, объект должен быть полностью инициализирован при завершении конструктора. Однако в этом случае я не стал бы считать объект полностью инициализированным, если не требуется, чтобы прослушиватели подключались.
Насколько я могу судить, для этого требуется подключить всех слушателей в застройщике или на заводе, хотя это кажется очень развязанным от самого объекта и легко выйти из синхронизации. Кроме того (по крайней мере, в actionscript, который я провожу большую часть своего времени в эти дни), это будет означать, что мои слушатели событий больше не могут быть частными, так как фабрика/строитель должен будет их увидеть.
Каков наилучший способ справиться с этим? Есть ли другой вариант, который я здесь отсутствует?
Какова продолжительность жизни объектов-слушателей? Они живут дольше, чем ваш основной объект? Если они имеют более короткий срок службы, чем основной объект, они не должны передаваться через конструктор. – Runcible