Schön, dass du dich an FD versuchst.
Allerdings höre ich schon ein Missverständnis heraus: du sprichst von Schichten. Die haben aber mit FD nichts zu tun. Da denkst du noch in kontraproduktiven Kategorien. Vergiss Schichten.
Und vergiss die Terminologie Bauteil/Platine. Die gehört zu einer speziellen Implementation von FD Modellen. Sprich besser von Operationen und Flows.
Wie kann es sein, dass Logik auf einen DataAdapter zugreift? Das verstehe ich nicht. Du kannst ja nur von einer Operation sprechen. Aber Operationen haben keine Abhängigkeiten.
Wenn du hingegen von Flows sprichst, dann gibt es zwar Abhängigkeiten - aber die machen nichts. In einem Flow können munter Operationen ganz unterschiedlicher Art gemischt werden.
Die massive Instanzierung in Main ist etwas nervig. Stimmt. Mehrere Abhilfen sind möglich:
1. Automatisierung: mit einem Hilfsmittel ähnlich einem DI Container könnte die Registrierung automatisiert werden. Der Container würde die Operationen sammeln und bei der Config registrieren. Dann müsste man zumindest dafür keinen Code hinschreiben.
So einen Container habe ich auf dem Zettel, bin bisher aber nicht dazu gekommen. Anderes war wichtiger.
2. Ohne Automatisierung kannst du die Registrierung auf Klassen/Komponenten verteilen. Damit fällt sich zumindest nicht so massiv in Main an.
3. Auch eine autom. Registrierung würde bei Programmstart ablaufen. Theoretisch könnte später async was nachgeladen werden - doch ich glaube, das würde ein Wurzelproblem nur kaschieren.
Ergo: Wenn die Registrierung der Operationen wirklich, wirklich ein Performanceproblem darstellt, dann melde dich und wir schauen nach der wahren Ursache. Bis dahin nimm Abstand von einer vorzeitigen Optimierung durch irgendwelche Tricks.
--
Ralf Westphal - One Man Think Tank
Hans-Henny-Jahnn-Weg 44
D-22085 Hamburg
Germany
Tel 0170-3200458
Email
in...@ralfw.de