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.
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...). 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 modèle MVC (modèle-vue-contrôleur), qui préconise de séparer dans des classes les différentes 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...
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.
Une classe métier :
public class Client implements java.io.Serializable {
private String name;
...
//setters et getters
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 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.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Le cours ME-101 vise à l'acquisition des règles et du langage normalisé de la communication technique, et des bases de la conception mécanique.
Ce cours intègre des travaux pratiques d'initiation à la
Le cours ME-106 vise à l'acquisition des règles et du langage normalisé de la communication technique, et des bases de la conception mécanique.
Ce cours intègre des travaux pratiques d'initiation à la
Le cours de ME-107 vise à l'acquisition d'une solide culture technique de base en vue d'être capable de traiter des cas concrets de construction mécanique, via une revue des concepts, composants, et m