Из книги "Injection Injection in.Net" я знаю, что граф объекта должен быть создан в Корневой состав приложения, что имеет для меня большой смысл, когда вы используете IoC контейнер.
Во всех приложениях, которые я видел при попытке использовать DI, всегда есть два конструктора: один с зависимостями в качестве параметров и "по умолчанию" без параметров, который в свою очередь вызывает другой "новичка" по всем зависимостям, но в вышеупомянутой книге это называется "Bastard Injection anti-pattern", и это то, что я знал как "бедный человек инъекций".
Теперь, учитывая все это, я бы сказал тогда, что "Бедный Человек Инъекции" просто не будет использовать контейнер IoC и вместо этого будет кодировать весь графа объекта по указанному Корневому составу.
Итак, мои вопросы:
- Я правильно понимаю эти понятия или я полностью отслежен?
- Если вам все еще нужно регистрировать все зависимости в контейнере IoC против их кодирования вручную в точно таком же корневом составе, какова реальная выгода от использования контейнера IoC?
- Если я неправильно понял, что такое "Бедный человек", может кто-то прояснить его?
Спасибо