Использование фабрик для создания нескольких объектов при использовании внедрения зависимостей

Я пытаюсь понять, как создать несколько объектов при использовании внедрения зависимостей. Насколько я понимаю, стандартный подход заключается во внедрении Factory, который затем используется для создания объектов. Я борюсь с тем, как Factory создает объекты. На данный момент я вижу два возможных решения:

Factory просто использует new () для создания объекта.

  • Разве DI не должен освободить меня от использования new для объектов, не являющихся ценностями?
  • Что произойдет, если объект, который должен быть создан, имеет зависимости, которые могут быть разрешены IoC?

Use the Container as Serviclocator

  • решает проблемы простого создания объектов за счет введения антипаттерна, или это больше не антипаттерн, если использование сервиклокатера ограничен внутри фабрик?

Мне кажется, что я могу выбирать между плохим и плохим решением. Что-то мне не хватает или я что-то не понимаю?

Edit В настоящее время я вообще не использую Ioc, но думаю о Ninject. Хотя Autofac DelegateFactories звучит многообещающе.

5
задан Steven 8 June 2011 в 10:15
поделиться