A volte il mio aggregato sarà molto semplice; alcuni scenari semplicemente non sono abbastanza complessi da richiedere alberi profondi di oggetti e relazioni.
Considera un'applicazione di monitoraggio del sito web, che periodicamente esegue il ping di un URL per verificare se è vivo.
L'app Web avrà:
- Id
- FriendlyName
- URL
- IsAlive
Non ha molti dati, non ha oggetti figli (eccetto forse che l'URL sia un Oggetto Valore) e sicuramente non avrà molti invarianti - se ce ne sono - per far rispettare entrambi, almeno non in questo momento.
Ora alcuni dicono che poiché non sta modellando un modello più complesso, con relazioni e interni e quant'altro, non è un Aggregato, è solo un'entità.
Il fatto è che non penso che la complessità o le dimensioni debbano essere dettate se si tratta di un oggetto aggregato, entità o valore, ma piuttosto il suo SIGNIFICATO.
Per il dominio di monitoraggio dell'applicazione Web, l'"entità" dell'app Web è il modello radice, è ciò che verrà restituito da un repository. Se l'esperto di domini presenta nuovi requisiti, questi saranno correlati a quel modello di app Web.
Quindi, per quanto mi riguarda, credo che lo renda un WebAppAggregate, piuttosto che una WebAppEntity.
Domanda: la mia linea di pensiero è corretta o ho sbagliato tutto? Grazie in anticipo.