Inversione di dipendenza - Architettura software

1

Diciamo che abbiamo un'applicazione con un DAL, un livello aziendale e un livello di presentazione, facciamo inversione di dipendenza e posizioniamo le interfacce del repository del database sul livello aziendale.

Sul livello dati utilizziamo EF per l'accesso al database. Chi possiede le entità? Il livello aziendale o il DAL?

Intendo a livello aziendale dovremmo già sapere delle entità, tuttavia le entità sono generate dal livello di accesso ai dati. Penso che i moduli di livello inferiore non dovrebbero conoscere i moduli di livello superiore. Sono davvero confuso.

    
posta Icebraker 28.12.2016 - 11:22
fonte

1 risposta

1

Il tuo "dominio" conosce le entità (sto usando "dominio" in senso lato qui)

Il livello aziendale fa parte del tuo dominio. La maggior parte delle volte il DAL fa anche parte del dominio, anche se non da ciò che riguarda l'implementazione (cioè si dispone di un'interfaccia DAL che fa parte del dominio, è quella parte del dominio da cui si recuperano e persistono le entità; usa EF o qualcos'altro per farlo davvero, non è importante).

Le tue entità di solito coprono l'intera applicazione. Hai regole e comportamenti di bussines ma quelle regole funzionano con le tue entità. Queste entità raggiungono anche l'utente nella presentazione e nella conoscenza del dominio (cioè il tuo "dominio" in realtà modella il vero dominio aziendale).

Sì, i livelli inferiori non dovrebbero avere alcuna conoscenza dei livelli superiori, ma le tue entità non sono di proprietà dei livelli superiori, sono (il più delle volte) tagliando trasversalmente l'intera applicazione.

    
risposta data 28.12.2016 - 12:38
fonte