Nie można połączyć Factory / DI

Załóżmy, że mam jakąś klasę Foo, która ma dwie zależności: anISerializer<T> i anIFileAccessHandler.

Teraz ta klasa ma również inne zależności, zależności funkcjonalne. Nie chcę, aby ktokolwiek tworzył tę klasę w niepoprawnym stanie, więc musiałbym również przekazać obiekt domeny w konstruktorze.

Ale jak mogę mieć to obsługiwane przez IoC, gdy wiem także, który obiekt domeny ma przejść w momencie, gdy faktycznie tworzę klasę Foo?

Zrobiłem obiektowi domeny właściwość ustawioną przez fabrykę. Fabryka wykonuje więc wywołanie Lokalizatora usługi, aby uzyskać poprawnie instancję klasy „Foo” z jej zależnościami, a następnie wypełnia ją poprawnym obiektem domeny i zwraca go.

Ale czy to najlepszy sposób? Wolałabym, aby część obiektu mojego konstruktora w domenie sprawiała, że ​​był on bezpieczny, a właściwie trzeba pracować z „Foo”.

Jakieś pomysły? Czy coś mi umyka?

questionAnswers(2)

yourAnswerToTheQuestion