Für ein Plugin-
DLL scheint es mir flexibel, wenn diese selbst die von ihr bereitgestellten Interfaces bei der Anwendung registriert.
Dazu wird dem Plugin ein Interface zum Anwendungskern übergeben, bei dem beliebige Interfaces registriert und abgefragt werden können.
Beispiel könnte ein Exportdateiformat sein. Davon kann es mehrere geben, für den Anwendungsfall ist es egal welche davon in der Anwendung oder in einem Plugin realisiert sind.
Der Dateiexport fragt alle registrierten Formate beim Anwendungskern ab, bietet diese dem Anwender an und erzeugt die Datei im gewählten Format.
Sollte dieses Dateiformat die Namen von Artikelgruppen benötigen, kann es dafür vom Anwendungskern ein Interface abfragen, das eine entsprechende Liste bereitstellt.
Das Dateiformat kann in der Plugin-
Dll realisiert sein und die Schnittstelle mit den Artikelgruppen in der Anwendung.