web-dev-qa-db-fra.com

Quelle est la différence entre DAO et DAL?

Ayant étudié Java à l'école, je connais assez bien le modèle DAO ( objet d'accès aux données ). Cependant, au travail, j'utilise .NET. Dans .NET, il y a souvent parler du DAL ( Data Access Layer ). Pour moi, leur objectif semble assez similaire. La question est donc de savoir si DAO et DAL sont fondamentalement la même chose? Le terme DAL est-il uniquement composé de sorte qu'il ne le serait pas être mélangé avec Objets d'accès aux données ?

44
simoraman

La couche d'accès aux données (DAL) est la couche d'un système qui existe entre la couche de logique métier et la couche de persistance/stockage. Un DAL peut être une classe unique ou être composé de plusieurs objets d'accès aux données (DAO). Il peut avoir une façade sur le dessus pour que la couche métier puisse parler, cachant la complexité de la logique d'accès aux données. Il peut s'agir d'un outil de mappage relationnel objet tiers (ORM) tel que Hibernate.

DAL est un terme architectural, les DAO sont un détail de conception.

65
Matt Howells

Une couche d'accès aux données contiendra de nombreux objets d'accès aux données.

Son rôle principal est de découpler la logique métier de la logique et de l'implémentation de la base de données.

Par exemple, la DAL peut avoir une seule méthode qui récupère les données de plusieurs tables, requêtes ou procédures stockées via un ou plusieurs objets d'accès aux données.

Les modifications apportées à la structure de la base de données, aux DAO, aux procédures stockées ou même au type de base de données ne doivent pas entraîner de modifications de la logique métier et cela est dû au découplage fourni par la DAL.

15
ChrisBD