Se ho dieci classi, e hanno tutte bisogno di operazioni CRUD, in che modo una radice aggregata e il pattern di repository mi risolvono dovendo scrivere un sacco di codice boilerplate (il DRY)?
Prendi l'esempio di una scuola e io ho uno studente, un insegnante, un soggetto, un programma, una stanza, ..., ecc.
Se non avessi fatto nulla, avrei avuto un servizio o una classe da qualche parte che aveva un singolo Crea per ogni oggetto e lo hanno per ogni classe. Sono cinque o più ripetizioni, la digitazione, quasi della stessa azione. Le colonne saranno diverse ma non molto altro.
La mia comprensione dell'Agregate Root (AR) consiste nel prendere quel concetto AR e raggruppare i "comportamenti" in base a un caso d'uso. Quindi, finisco con meno, credo, modelli o servizi per fare CRUD.
Ho letto molte domande su SO, SE e Blog. Troppi per fare riferimento qui. Ho anche letto molto sul pattern del repository. Molti degli esempi di modelli di repository finiscono con un repository per ciascun modello. Quella è la stessa barca in cui ero prima (e c'erano domande SO che lo confermavano).
Quindi sono confuso su ciò che sto realizzando qui. Sembra che sto semplicemente riducendo il numero di comandi che devono essere formattati e che non esiste un modo "magico" per creare un generico fare tutto CRUD e tutte le altre specialità del database per l'oggetto e il comportamento X.
È corretto?