Я решил использовать принципы IoC в более крупном проекте. Тем не менее, я хотел бы получить что-то прямое, что беспокоило меня в течение длительного времени. Вывод, который я придумал, заключается в том, что контейнер IoC является архитектурным шаблоном, а не шаблоном проектирования. Другими словами, ни один класс не должен знать о его присутствии, и сам контейнер должен использоваться на уровне приложения, чтобы сшить все компоненты. По существу, он становится опцией, на вершине хорошо продуманной объектно-ориентированной модели. Сказав это, как можно получить доступ к разрешенным типам без разбрызгивания контейнеров IoC по всему месту (независимо от того, они абстрагированы или нет)? Единственный вариант, который я вижу здесь, - использовать абстрактные фабрики, которые используют контейнер IoC для разрешения конкретных типов. Это должно быть достаточно просто, чтобы поменяться местами для набора стандартных фабрик. Это хороший подход? Кто-нибудь здесь использовал его и насколько хорошо он работал на вас? Есть ли что-нибудь еще?
Спасибо!