Voglio esporre la mia idea riguardo ad una possibile implementazione di un Layer Presentation per una Finestra di tipo Master-Details.
Lo scopo del presenter, cosi' lo chiamo io, è quello di fornire una Vista del domain model e due routine per applicare i cambiamenti. Lo schema sotto illustra uno schema classico
Dove Il mio presentation non fa altro che prelevare le informazioni dalla view e passarle al DTO che si occuperà di aggiornare o creare una nuova Entity nel mio Database.
Fin qui nessun problema, ma nel caso in cui il mio EntityMaster debba gestire anche una collection di Child? Beh ci ho ragionato su e mi è venuta in mente questa idea, grazie anche ad un articolo presente nel blog di Marti Fowler.
Non è cambiato niente se non che è il presenter a caricare i valori presenti nelle collection Child, giusto? Quindi siccome è sempre compito del presenter preoccuparsi di aggiornare la mia view e di persisterla tramite il DTO nel Database, allora mi sembra corretto assegnare al presenter il compito di gestire anche le child.
In questo modo aggiunta una child alla view, in automatico mi si aggiorna la view stessa e quindi anche la Form ad essa legata, e allo stesso tempo persisto i dati senza andarmi a preoccupare di nulla.
IMHO questa è la mia soluzione per un Master-Detail. Che ne pensate?