Я читал руководство Миско Хевери : написание тестируемого кода .
Я определенно покупаю инъекцию зависимостей как отличный инструмент для улучшения тестируемости и часто использую его в своем коде. Однако, читая первую часть руководства " Недостаток # 1: Конструктор выполняет реальную работу ", я обнаружил, что все еще немного неясен относительно того, как вы должны подключать прослушиватели событий.
Допустим, у меня есть класс, которому для правильной работы необходимо подключить слушатель к одному из аргументов, передаваемых через внедрение зависимостей в конструктор. Согласно руководству, конструктор должен только назначать свои аргументы переменным-членам и не выполнять никакой другой работы. Кроме того, объект должен быть полностью инициализирован после завершения конструктора. Однако в этом случае я бы не считал объект полностью инициализированным, если не требуется, чтобы прослушиватели были подключены.
Насколько я могу судить, это требует подключения всех слушателей в сборщике или фабрике, хотя это, кажется, очень отделено от самого объекта и легко не синхронизировано. Кроме того (по крайней мере, в ActionScript, который я трачу большую часть своего времени в эти дни), это означало бы, что мои слушатели событий больше не могли быть частными, так как фабрика / строитель должны были бы их видеть.
Какой лучший способ справиться с этим? Есть ли другой вариант, который я здесь упускаю?