Query nell'architettura a tre livelli

1

Mi chiedo dove dovrebbero essere le query DB nell'architettura a tre livelli.
La prima associazione che pensa è nel DAL. Ma se BL vuole cercare un oggetto, il DAL deve pubblicare i metodi per ogni possibile ricerca (Non realistico - molto lavoro).

La seconda opzione è nel BL. Ma poi il BL ha bisogno di sapere come il DB ha progettato ... (L'incapsulamento non è buono)

La terza opzione, è che il DAL pubblicherà alcuni oggetti come "QueryBuilder" o qualcosa di simile, e il BL costruisce la query con associazione debole (ma ancora necessaria) al DB.

Qual è l'opzione migliore per consentire a BL di effettuare una ricerca?

    
posta nrofis 05.12.2013 - 18:40
fonte

1 risposta

4

Se il tuo livello di accesso ai dati non fornisce i metodi per accedere ai dati di cui hai bisogno, perché dovresti averli?

Il punto di un DAL non è solo quello di fornire metodi generici per accedere a qualsiasi dato richiesto dal chiamante. Il driver del database fornisce già quelli, e se vuoi essere indipendente dal particolare database, vuoi un wrapper o un adattatore, ma non un intero livello di architettura.

No, secondo me il livello di accesso ai dati ha esattamente questo compito da fare: fornire metodi per quelle query effettivamente utilizzate nell'applicazione (piuttosto che il numero quasi infinito di query che in teoria teoricamente consentirebbe SQL).

    
risposta data 05.12.2013 - 18:58
fonte

Leggi altre domande sui tag