Не могу объединить Factory / DI
Просто предположим, что у меня есть некоторый класс Foo, который имеет две зависимости:ISerializer<T>
иIFileAccessHandler
.
Теперь этот класс также имеет другие зависимости, функциональные зависимости. Я не хочу, чтобы кто-либо создавал этот класс в недопустимом состоянии, поэтому мне также нужно передать объект домена в конструкторе.
Но как я могу обработать это с помощью IoC, когда я также знаю, какой объект домена нужно передать в момент, когда я фактически создаю класс Foo?
Я сделал объект домена свойством, которое я установил Фабрикой. Таким образом, Factory делает вызов локатора служб, чтобы получить экземпляр класса Foo с его зависимостями, который создается должным образом, а затем заполняет его правильным доменным объектом и возвращает его.
Но так ли это лучше? Я бы предпочел, чтобы доменный объект был частью моего конструктора, чтобы сделать его доступным для работы с "Foo".
Есть идеи? Я что-то здесь упускаю?