Kann Factory / DI nicht kombinieren

Angenommen, ich habe eine Klasse Foo, die zwei Abhängigkeiten hat: anISerializer<T> und einIFileAccessHandler.

Diese Klasse hat nun auch andere Abhängigkeiten, funktionale Abhängigkeiten. Ich möchte nicht, dass jemand diese Klasse in einem ungültigen Zustand instanziiert. Daher muss ich auch ein Domänenobjekt im Konstruktor übergeben.

Aber wie kann ich das von IoC handhaben lassen, wenn ich auch weiß, welches Domänenobjekt zu übergeben ist, wenn ich tatsächlich die Klasse Foo erstelle?

Ich habe das Domänenobjekt zu einer Eigenschaft gemacht, die ich von einer Factory festgelegt habe. Daher ruft die Factory einen Service Locator-Aufruf auf, um eine ordnungsgemäß instanziierte "Foo" -Klasse mit ihren Abhängigkeiten abzurufen, und füllt sie weiter mit dem richtigen Domänenobjekt auf und gibt es zurück.

Aber ist das der beste Weg? Es wäre mir lieber gewesen, wenn das Domain-Objekt Teil meines Konstruktors wäre, damit es so aussieht, als müsste man tatsächlich mit "Foo" arbeiten.

Irgendwelche Ideen? Vermisse ich hier etwas?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage