BL, entità e DAL
Lo scopo del BL è implementare la logica di dominio che funziona con le entità di dominio. La definizione di queste entità è guidata dal business.
Lo scopo del DAL è quindi di organizzare la persistenza delle entità di dominio. L'idea è di nascondere dagli strati superiori i brutti dettagli dell'accesso ai dati e del database. Se è ben fatto, puoi cambiare il database sotto la superficie e lasciare invariati i livelli superiori.
Non sorprende che il dominio le entità siano condivise su entrambi i livelli : BL ha bisogno che vengano eseguite attività di dominio, ma DAL ha bisogno di loro per organizzare la persistenza.
Disaccoppia BL e DAL?
Il disaccoppiamento dei componenti è generalmente un'ottima idea. Tuttavia, i livelli non sono componenti indipendenti. I livelli sono raggruppamenti logici di classi correlate.
Se possibile, puoi anche ridisegnare il diagramma del livello e immaginare un livello tra BL e DAL che contiene le Entità. E all'improvviso, gli strati appariranno puliti e disaccoppiati.
Quali sono le alternative?
Proponi un'alternativa all'uso di due diversi tipi di entità nei diversi livelli. Quindi avresti entità di dominio appropriate nel BL. E tu avresti entità di accesso ai dati intermedi nel DAL.
Ora immagina di implementare questo schema perfetto. Come faresti allora il collegamento tra l'entità BL e l'entità DAL? In qualche modo questi dovrebbero conoscersi per sincronizzare i dati. Quindi finiresti per avere un strong accoppiamento tra gli strati comunque. È solo che sarebbe meno ovvio.