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