Data Access Object

Data Access Object

Objet d'accès aux données

Un objet d'accès aux données (en Anglais Data Access Object ou DAO) est un patron de conception (c'est-à-dire un modèle pour concevoir une solution) utilisé dans les architectures logicielles objet.

Sommaire

Utilisation

Les objets en mémoire vive sont souvent liés à des données persistantes (stockées en base de données, dans des fichiers, dans des annuaires, etc.). Le modèle DAO propose de regrouper les accès aux données persistantes dans des classes à part, plutôt que de les disperser. Il s'agit surtout de ne pas écrire ces accès dans les classes "métier", qui ne seront modifiées que si les règles de gestion métier changent.

Ce modèle complète le vieux modèle MVC (Modèle - Vue - Contrôleur), qui préconise de séparer dans des classes différentes les problématiques :

  • des "vues" (charte graphique, ergonomie)
  • du "modèle" (cœur du métier)
  • des "contrôleurs" (tout le reste : l'enchaînement des vues, les autorisations d'accès, ...)

Avantages et inconvénients

L'utilisation de DAO permet de s'abstraire de la façon dont les données sont stockées au niveau des objets métier. Ainsi, le changement du mode de stockage ne remet pas en cause le reste de l'application. En effet, seules ces classes dites "techniques" seront à modifier (et donc à re-tester). Cette souplesse implique cependant un coût additionnel, dû à une plus grande complexité de mise en œuvre.

Exemple en Java

Une classe métier :

public class Client implements java.io.Serializable {
 
  private String name;public void setName(String name) {
    this.name=name;
  }
  public String getName() {
    return this.name;
  }// méthodes métier
  public void reglerFacture(int noFac){}}


Une classe technique :

public class DAOClient implements java.io.Serializable {
 
  // Recherche de clients par nom
  public List<Client> getByName(String name) {
    // accès au fichier ou à la table des clients
  }
  // Recherche d'un client par son identifiant
  public Client getById(int id) {}
  // Mise à jour des données d'un client}

Il est important que cette classe cache complètement d'où viennent les données : elle doit donc renvoyer des objets métier (et non un curseur, un enregistrement, …).


Une classe contrôleur :

public class GestionnaireClient {
 
  /* Objet d'accès aux données */
  private DAOClient daoClient =;
  ArrayList listeClients = daoClient.getByName("Untel");}

Types d'accès aux données

Il peut exister autant de types de DAO que de moyens de persistance des données.

Des bibliothèques logicielles sont d'ailleurs conçues spécifiquement pour prendre en charge ces aspects.

Liens externes

Ce document provient de « Objet d%27acc%C3%A8s aux donn%C3%A9es ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Data Access Object de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Data Access Object — Saltar a navegación, búsqueda En software de computadores, un Data Access Object (DAO, Objeto de Acceso a Datos) es un componente de software que suministra una interfaz común entre la aplicación y uno o más dispositivos de almacenamiento de… …   Wikipedia Español

  • Data Access Object — (DAO, deutsch: „Datenzugriffsobjekt“) ist ein Entwurfsmuster, das den Zugriff auf unterschiedliche Arten von Datenquellen (z. B. Datenbanken, Dateisystem, etc.) so kapselt, dass die angesprochene Datenquelle ausgetauscht werden kann, ohne dass… …   Deutsch Wikipedia

  • Data access object — This article is about the data access object design pattern in object oriented software design. For the Microsoft library of the same name, see Data Access Objects. In computer software, a data access object (DAO) is an object that provides an… …   Wikipedia

  • Data Access Object — This article is about the Data Access Object design pattern in object oriented software design, not about the Data Access Objects library from Microsoft. In computer software, a Data Access Object (DAO) is an object that provides an abstract… …   Wikipedia

  • Data Access Object — В программном обеспечении data access object (DAO)  это объект, который предоставляет абстрактный интерфейс к какому либо типу базы данных или механизму хранения. Определённые возможности предоставляются независимо от того, какой механизм… …   Википедия

  • data access object — noun an object in programming that provides an abstract interface to some type of persistence mechanism, providing some specific operations without exposing details of the persistence layer …   Wiktionary

  • Data transfer object — (DTO),[1][2] is a design pattern used to transfer data between software application subsystems. DTOs are often used in conjunction with data access objects to retrieve data from a database.[1][2] The difference between data transfer objects and… …   Wikipedia

  • Data Transfer Object — Data Transfer Objects (DTO), formerly known as Value Objects or VO, are a design pattern used to transfer data between software application subsystems. DTOs are often used in conjunction with Data Access Objects to retrieve data from a… …   Wikipedia

  • Data Access Objects — is a general programming interface for database access on Microsoft Windows systems and should not be confused with the Data Access Object design pattern used in object oriented software design. History DAO were originally called VT Objects. DAO… …   Wikipedia

  • Data Access Objects — Saltar a navegación, búsqueda Data Access Objects (DAO, Objetos de Acceso a Datos) es una interfaz orientada a objetos creada por Microsoft la cual permitía a las primeras versiones de Microsoft Access y Visual Basic utilizar el motor de base de… …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”