Zitat:
ich ergänze gerade mein Framework zur Dependency Injection um die Möglichkeiten eines Plug-In-Frameworks eines Drittherstellers, das pro Modul eine Liste von Fabriken bereithält, die neben der Fabrikation selbst leider nur eine Referenz auf die (dynamisch nachgeladene) Klasse anbieten. Um den Abhängigkeitsgraphen bei der Injektion traversieren und rekursiv lösen zu können nutzt die Implementation eines Containers Typinformationen, da injizierte Abhängigkeiten auch auf Basis von Klassen oder anderen Typen formuliert werden- und eben nicht nur Interfaces.
Trotzdem beschreiben viele der Container Abhängigkeiten zu speziellen Interfaces (Services), die ihrerseits nun durch das Plug-In-Framework nachgeladen werden. Weil ich das Plug-In-Framework des Drittherstellers nicht verändern und schon gar nicht in den Registraturmachnismus dieser Plug-ins eingreifen möchte, bleibt zur Ermittlung des (ersten, es handelt sich um einen Service) unterstützen Interfacetyps aus meiner Sicht nur die Möglichkeit, sie aus der Klassenreferenz zu extrahieren.
Oder übersehe ich etwas?
Ähm ja ? kannst du das bitte auf deutsch posten ?
Bisher habe ich verstanden das du eine externe Schnittstelle in deine Anwendung anbieten nöchtest. Man kann also nachladbare Plugins erzeugen die in deinen Framework eingebunden werden. Schön. Aber wozu so umständlich und warum "Dependency Injection" -> "Abhängigkeits-Einspritzung" ? was soll das sein ?
Normalerweise designe ich die Schnittstelle für die Plugins aus Sicht der Erfordernissen der Anwendung die diese Schnittstelle zur Verfügung stellen will, nicht umgekehrt. An diese Schnittstelle haben sich Plugins zu halten und IN dieser Scnittstelle gäbe es dann alle nötigen Methoden um an diese Infos ranzukommen.
Davon mal abgesehen halte ich die Idee das die Plugin-Applikation tiefgehende Zugriffe auf die Implementation der Plugins ansich hat als sehr schlecht. Das widerspricht dem Black-Box-Prinzip.
Naja, und bei Google finde ich unter "Dependency Injection" nur JAVA Kram und ich kann heut noch nicht verstehen warum sich echte Programmierer wie wir sich JAVA als Vorbild nehmen
Gruß Hagen