Не могу объединить Factory / DI

Просто предположим, что у меня есть некоторый класс Foo, который имеет две зависимости:ISerializer<T> иIFileAccessHandler.

Теперь этот класс также имеет другие зависимости, функциональные зависимости. Я не хочу, чтобы кто-либо создавал этот класс в недопустимом состоянии, поэтому мне также нужно передать объект домена в конструкторе.

Но как я могу обработать это с помощью IoC, когда я также знаю, какой объект домена нужно передать в момент, когда я фактически создаю класс Foo?

Я сделал объект домена свойством, которое я установил Фабрикой. Таким образом, Factory делает вызов локатора служб, чтобы получить экземпляр класса Foo с его зависимостями, который создается должным образом, а затем заполняет его правильным доменным объектом и возвращает его.

Но так ли это лучше? Я бы предпочел, чтобы доменный объект был частью моего конструктора, чтобы сделать его доступным для работы с "Foo".

Есть идеи? Я что-то здесь упускаю?

Ответы на вопрос(2)

Ваш ответ на вопрос