← Tutte le CapsuleRiepilogo architetture piattaforma enterprise sanitaria JavaScript Domain-Driven Design
Service Layer / Application Service
Usare un Application Service per implementare il caso d'uso e delimitare la transazione locale.
Il problema
Un caso d'uso richiede coordinare dominio, repository e integrazioni senza collocare l'orchestrazione nel Controller o nella persistence.
Il pattern
Usare un Application Service per implementare il caso d'uso e delimitare la transazione locale.
Come funziona
Il Service Layer carica aggregate, invoca comportamenti di dominio, persiste, chiama porte esterne quando necessario e produce outcome. Non deve sostituire il Domain Model con enormi metodi procedurali.
Esempio sanitario
Benefici
- Casi d'uso espliciti
- Boundary transazionale
- Controller e dominio più puliti
Trade-off
- Rischio di God Service
- Possibile duplicazione se i casi d'uso non sono ben definiti
Quando usarlo
Per operazioni applicative con coordinamento non banale.
Quando evitarlo
Per concentrare tutte le regole di business in un solo service.
Pattern correlati
RIFERIMENTI
Fonti e riferimenti
Capsule Informatiche · Materiale progettuale
Materiale di studio
