| Adapter |
Framework-spezifische HTTP/DI/Runtime-Details isolieren |
SpringBootOrderController,
JakartaOrderResource, QuarkusOrderResource,
MicronautOrderController |
Der fachliche Use Case bleibt frameworkfrei. |
| Ports & Adapters |
Abhaengigkeit nach innen richten |
PaymentPort, OutboxPort,
OrderRepository |
Framework- und Infrastrukturwechsel bleibt kontrollierbar. |
| Application Service |
Use Case orchestration |
PlaceOrderUseCase |
Transaktionsgrenze und Ports werden zentral orchestriert. |
| Repository |
Persistenz abstrahieren |
OrderRepository |
Tests und Adapter koennen ausgetauscht werden. |
| Value Object |
Fachliche Werte absichern |
Money, OrderLine, Sku |
Verhindert primitive Obsession. |
| Domain Event |
Fachliche Ereignisse sichtbar machen |
OrderAcceptedEvent,
OrderRejectedEvent |
Basis fuer Outbox und Integration. |
| Template Method |
Transaktionsrahmen kapseln |
TransactionTemplate |
Use Case kennt nicht die konkrete Transaktions-API. |
| Result Type |
Business Errors explizit machen |
PlaceOrderResult, BusinessError |
HTTP-Adapter kann sichere Statuscodes ableiten. |