Beh diciamo che dal titolo potrei essere frainteso. Stiamo parlando di metodologie e nello specifico, legate allo sviluppo DDD. In questo caso voglio analizzare una divisione dei compiti, ovvero se questa problematica deve essere affrontata da chi e perchè.

Abbiamo due Entities classiche una delle quali viene esposta come collection nell' altra come nell' UML sotto.

image

Gestione dei figli.

Un primo approccio classico potrebbe essere quello di avere due metodi all' interno dell' Entity Persona, e nello specifico, AddFiglio(Figlio entity) e RemoveFiglio(Figlio entity). In questo modo è possibile rendere read-only la proprietà Figli dell' entity Persona e gestire nella View (Presentation Layer) esclusivamente l' entity principale.

Oppure si potrebbe inserire nel costruttore di Figlio, un riferimento a Persona, ma comunque al di fuori del mio ORM, non saprei come notificare a persona l' arrivo o la partenza di un figlio, per aggiornarne la lista.

Una seconda soluzione, poco pulita potrebbe essere quella di rendere in prima battuta accessibile la proprietà Figli, avendo a disposizione un metodo getter ed uno setter. Fattio cio' potremmo attribuire al presentation i metodi Add e Remove per la gestione dei figli. Poco pulita e sicuramente non-pattern visto che in questo modo renderei Domain e Presentation strettamente legati.

Quindi, concludendo, penso che la prima soluzione sia l' unica decente.

Per chi volesse parlarne, su GUISA ho aperto un thread. smile_speedy