Проблема с МОК : Слишком много абстрактных фабрик для классов, зависимых от данных во время выполнения

Недавно я начал использовать DI в одном из своих проектов. Для классов, зависимых от времени выполнения, я создал соответствующие абстрактные фабрики. Следуя этому шаблону, я получаю слишком много абстрактных фабрик, почти по одной для каждого моего класса.

Распространено ли слишком много абстрактных фабрик при использовании IOC?

Сценарий: Предположим, я получил объект «Сущность» из базы данных. Пользователь может использовать 10 различных вариантов использования этого объекта сущности. Для каждого варианта использования у меня есть отдельный класс для его обработки. В некоторых случаях данный вариант использования может иметь компоненты вспомогательного варианта использования, которым также может потребоваться объект сущности. Поскольку эти классы зависят от объекта сущности среды выполнения, мне пришлось создать абстрактную фабрику для каждого из них. Наконец, я подключаю инструкции по сборке к контейнеру IOC.

Есть ли альтернативный способ сделать это. Я просто считаю, что создание всех этих фабрик - пустая трата времени, ОСОБЕННО, когда все подклассы зависят от одного и того же объекта сущности.

Я склоняюсь к тому, чтобы для моего сценария с контейнером IOC был зарегистрирован единственный класс factory / builder. Эта фабрика создаст требуемый граф объектов для моего сценария. Я рассматриваю IOC как инструмент, помогающий реализовать концепцию DI. Не использовать контейнер IOC полностью может быть неплохо, если я наблюдаю за DI через настраиваемый конструктор / фабрику.

Я хотел знать, что вы думаете об этом подходе?

7
задан imasud 8 June 2011 в 04:57
поделиться