Hi,
ich habe hier in der Firma zurzeit mit einem Projekt zu tun, wo es um eine Art Nachrichtenbehandlung geht. Ich versuche zurzeit, die Abhängigkeiten mit Dependency Injection über Google Guice zu minimieren.
An einer Stelle existiert eine Klasse "MessageManager", in welcher ein Nachrichtenobjekt mit dem Attribut "MessageType" verarbeitet wird. Dieser MessageManager hält eine HashMap<MessageType, MessageHandler>, in welcher verschiedene Objekte vom Typ "MessageHandler" registriert sind. Der Manager holt aus der Hashmap den passenden MessageHandler für die Nachricht, die Nachricht wird an ihn weitergeleitet und er verarbeitet diese. (Etwas kompliziert beschrieben, aber das posten von Code ist mir von hier aus nicht möglich).
Im MessageManager können beliebig viele MessageHandler registriert werden. Macht DI hier überhaupt noch sinn? Die einzelnen MessageHandler besitzen auch Attribute, die ich gerne injizieren würde, aber jeden einzelnen MessageHandler an einer Stelle des Programms über Guice instantiieren, um ihn dann an ein anderes instantiiertes anzuhängen, erscheint mir keine schöne Lösung. Wie würdet ihr das Lösen, die DI außen vor lassen?
Danke fürs Lesen und schönen Gruß,
Tim
ich habe hier in der Firma zurzeit mit einem Projekt zu tun, wo es um eine Art Nachrichtenbehandlung geht. Ich versuche zurzeit, die Abhängigkeiten mit Dependency Injection über Google Guice zu minimieren.
An einer Stelle existiert eine Klasse "MessageManager", in welcher ein Nachrichtenobjekt mit dem Attribut "MessageType" verarbeitet wird. Dieser MessageManager hält eine HashMap<MessageType, MessageHandler>, in welcher verschiedene Objekte vom Typ "MessageHandler" registriert sind. Der Manager holt aus der Hashmap den passenden MessageHandler für die Nachricht, die Nachricht wird an ihn weitergeleitet und er verarbeitet diese. (Etwas kompliziert beschrieben, aber das posten von Code ist mir von hier aus nicht möglich).
Im MessageManager können beliebig viele MessageHandler registriert werden. Macht DI hier überhaupt noch sinn? Die einzelnen MessageHandler besitzen auch Attribute, die ich gerne injizieren würde, aber jeden einzelnen MessageHandler an einer Stelle des Programms über Guice instantiieren, um ihn dann an ein anderes instantiiertes anzuhängen, erscheint mir keine schöne Lösung. Wie würdet ihr das Lösen, die DI außen vor lassen?
Danke fürs Lesen und schönen Gruß,
Tim