Hallo torud,
ich rate von Ansätzen der Art
Delphi-Quellcode:
procedure SetDataModule(ADataModule:TMyVerySpecialDataModule);
begin
MyVerySpecialDataModule := ADataModule;
end;
zugunsten einer
minimalen Schnittstelle einer möglichst
losen Kopplung und dem
Geheimnisprinzip sowie aller sich daraus ergebenen Folgen wie bessere Testbarkeit, Wartbarkeit, Erweiterbarkeit, Wiederverwendbarkeit, etc. ab.
Das Thema Plug-ins ist relativ komplex und umfangreicher, als das Einbinden schlichter DLLs oder BPLs. Darüber hinaus macht der Mehraufwand nur dann Sinn, wenn Du davon ausgehen kannst, dass auch nach der Auslieferung Deiner Hauptanwendung Änderungen hinter einer
immer festen Schnittstelle vorkommen werden (das schließt nach Deinem Ansatz die Unveränderlichkeit des Datenmoduls ein!) und eine erneute Auslieferung der Anwendung (oder einzelner DLLs) nicht rechtfertigen bzw. nicht möglich ist oder durch Dritte geschieht.
Um eine gute Modularität Deiner Applikation zu erreichen können Units, Klassen oder auch Verbünde in Form von speziellen Entwurfsmustern helfen, auch ohne dass Plug-ins notwendig sind.
Wenn Du dennoch Deine Lösung mit Delphi und Plug-ins realisieren möchtest, hilft Dir vielleicht das Produkt
Hydra von RemObjects oder der Beitrag
"PlugIns in eigenen Anwendungen" von Sakura weiter.