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