Schichtenarchitektur · analog@1.2.0 · Blatt 5 von 5

Schichten richtig schneiden: Abhängigkeiten umkehren

Der Senior-Trick: Die Fachdomäne besitzt die Abstraktion, die Infrastruktur implementiert sie. Zur Laufzeit ändert sich nichts – im Quellcode dreht sich der Pfeil.
A · KLASSISCH: DOMÄNE → TECHNIK B · INVERTIERT: TECHNIK → DOMÄNE DOMÄNEN-KERN hängt ab von nutzt implementiert erzeugt injiziert 3 · FACHDOMÄNE Regeln + direkter DB-Zugriff importiert JPA, SQL, Treiber 4 · INFRASTRUKTUR JPA, SQL, Datenbank-Treiber DEGENERIERT 3 · FACHDOMÄNE Geschäftsregeln, Datentypen kennt nur Abstraktionen «REPOSITORY» Abstraktion, gehört der Fachdomäne speichern(), finden() 4 · INFRASTRUKTUR JpaOrderRepository (Detail) implementiert das Interface DI-CONTAINER verdrahtet FOLGEN • starr: DB-Wechsel zieht die Domäne mit• zerbrechlich: Technik-Änderung bricht Regeln• schlecht wiederverwendbar, kaum isoliert testbar NUTZEN • Änderungen bleiben hinter der Abstraktion lokal• Änderbarkeit, Testbarkeit, Wiederverwendbarkeit• Laufzeit: Aufruf weiter nach unten – nur dieCode-Abhängigkeit dreht sich um NICHT VERWECHSELN DIP · PRINZIP Abhängigkeiten drehen: beide Seiten hängen von Abstraktionen ab IOC · KONTROLLFLUSS Das Framework ruft Ihren Code auf. Hollywood: Don’t call us, we’ll call you DI · TECHNIK Abhängigkeiten werden von außen injiziert (Sonderfall von IoC) + Verwandte Namen: Ports & Adapters (Hexagonal),Onion, Clean Architecture – alle drehen dieAbhängigkeit zum Fachkern. nutzt (Abhängigkeit) implementiert DI verdrahtet + Ergänzung ohne Markierung = Folien CPSA-F Modul 03 Original-Skizze