Die Onion-Architektur - Hexagonal-, Onion- & Clean-Architecture Vergleich, Teil 4

Von: Thomas Bayer
Datum: 8. Juli 2024

Diese Einleitung führt leicht verständlich in die Softwarearchitekturen Hexagonal-, Onion- und Clean-Architecture ein.

Für das Verständnis dieses Teils, der die Onion Architecture behandelt ist das Durchlesen der Teile zur Dependency Inversion und Hexagonalen Architektur empfohlen.

4. Onion Architecture

Eine weitere Architektur, die auf Dependency Inversion basiert, ist die 2008 von Jeffrey Palermo beschriebene Onion-Architektur. Zur Darstellung werden konzentrische Kreise verwendet, die an die Schalen einer Zwiebel erinnern.


Abbildung : Jeffrey Palermo

Das Domain Model enthält den Zustand und das Verhalten, die im gesamten Unternehmen sichtbar sind – die Geschäftslogik.

Die Domain Services bieten Verhalten, das vom Domain-Kern abhängig ist. Hier finden sich auch Interfaces, über die die Persistenz angebunden wird.

Die Application Services enthalten weitere Schnittstellen z.B. für User-Sessions.

Im äußersten Ring befindet sich der Code für die Anbindung von Infrastruktur, z.B. für die Anbindung von Frameworks oder Datenbanken.

Die Abhängigkeiten verlaufen wieder von außen nach innen. Die Kopplung zeigt in Richtung Zentrum. Innere Schichten definieren Schnittstellen, während äußere Schichten diese implementieren. Der Kern der Anwendung kann somit ohne die äußeren Schichten kompiliert und getestet werden.


Abbildung : Abhängigkeiten in der Onion Architektur

Die Onion-Architektur wird ebenfalls mit Dependency Inversion und Dependency Injection umgesetzt.

Weiter geht es im nächsten Teil mit der Clean Architecture.

Video

Anstatt zu lesen kannst du auch das Video zum Artikel auf YouTube anschauen.