Capsule Informatiche di Lello De Luca
← Tutte le Capsule

Domain Model

Architettura applicativaApprofondimento

Rappresentare invarianti e comportamenti nel dominio, usando entity, value object e aggregate coerenti con il bounded context.

Il problema

Un modello composto solo da getter/setter sposta le regole in servizi procedurali e rende facile creare stati invalidi.

Il pattern

Rappresentare invarianti e comportamenti nel dominio, usando entity, value object e aggregate coerenti con il bounded context.

Come funziona

Un oggetto espone operazioni come order.complete() che verificano transizioni valide, invece di consentire setStatus("COMPLETED") da qualsiasi punto.

Esempio sanitario

Benefici

  • Invarianti vicino ai dati
  • Codice espressivo
  • Riduce stati invalidi

Trade-off

  • Richiede modellazione
  • Può essere eccessivo per CRUD puro

Quando usarlo

Per domini con regole e transizioni significative.

Quando evitarlo

Per tabelle di lookup o CRUD senza comportamento.

Pattern correlati

RIFERIMENTI

Fonti e riferimenti

JavaScript Domain-Driven Design

Materiale di studio

Riepilogo architetture piattaforma enterprise sanitaria

Capsule Informatiche · Materiale progettuale