В блоге Kozmic (от 2009 г.) он рекомендует Generic Factory извлекать объекты из контейнера. Ну, для меня это похоже на локатор псевдослужбы. Поэтому я хочу спросить мнение экспертов здесь.Castle Windsor Generic Typed Factory
public interface IGenericFactory
{
T Create<T>();
}
Могу ли я использовать это для извлечения объектов из контейнера Windsor? Есть ли недостатки в этом подходе?
Update:
На самом деле, я хочу, чтобы использовать его, чтобы получить только несколько переходных процессов, что я не хочу, чтобы создать несколько заводов по. Имея один завод для всех таких сценариев.
@ w0lf - При использовании фабричного подхода Generic мне не нужно ссылаться на контейнер в моем коде. Я зарегистрирую его как типичную фабрику и бум. Внесите завод и получите все, что хотите! (на самом деле, я хочу использовать его, чтобы получить только несколько переходных процессов, которые я не хочу создавать для нескольких заводов).Я хочу убедиться, что это хорошо или плохо? – user1178376
@ user1178376 Проблема с этим подходом заключается в том, что на самом деле это абстрактный сервисный локатор, который может легко скрывать зависимости класса. Чтобы избежать этого и связанных с этим проблем обслуживания, попробуйте использовать простые конструкторские инъекции и специализированные фабрики. – GolfWolf
Также обратите внимание на комментарий Николаса Блумхардта. Он описывает это довольно четко: «он мог бы попытаться создать буквально все, и это усложнит работу и протестирует». – Steven