Durante la creazione di un Architettura a livelli ho
sempre utilizzato la classica struttura con Domain Model Anemico
trasversale a tutti i livelli dell' applicazione.
Questo tipo di architettura, con il crescere delle funzionalità dell' applicazione, mi
ha sempre evidenziato il problema del poco riutilizzo e dell' impossibilità
di sfruttare a pieno il polimorfismo sul tipo di oggetto del DM, continuando
a gonfiare lo strato di Business Layer.
Cercando articoli / esempi su internet , in ambiente
.NET e Java, ho sempre trovato codice strutturato in questo modo vedi i vari
PetShop / PetStore , gli starter kit ms etc...
Mentre davo un occhiata a Spring, mi è venuto in mente
di creare un livello di interfacce anche per il DM e creare un livello
trasversale con la responsabilità di effettuare il collegamento tra le interfacce e le classi concrete.
In questo modo le classi del DM possono avere metodi che recuperano i dati
necessari per applicare logiche legate alle loro responsabilità.
Il DomainModelInterface potrebbe ereditare da altre 2
interacce EntityInterface "solo proprietà" e BusinessLogicInterface
"metodi" in modo da rendere esplicito l' utilizzo delle classi di dominio
nei vari livelli, per esempio : UI e DAL devono trattare solo dati e quindi
hanno solo il riferimento all' interfaccia Entity.
Probabilemente esistono soluzioni migliori, ma su internet non ho trovato
granchè, intanto ho ordinato questo libro.
powered by IMHO 1.3