<!-- Slide number: 1 -->
DAO & DTO
Hamoudi Med AliMezni Naceur
<!-- Slide number: 2 -->
DAO : Definition
DAO :
Data Access Object (objet d'accès aux données).
c'est un modèle pour concevoir une solution utilisé dans les architectures logiciels objet .
<!-- Slide number: 3 -->
DAO : 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.
<!-- Slide number: 4 -->
Publicité
#
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, ...)
<!-- Slide number: 5 -->
DAO : Avantages
Les DAOs agissent en tant qu'intermédiaire entre l'application et la base de données. Ils déplacent les données entre les objets et les enregistrements de la base de données. En testant le code est facilitée en substituant le DAO par un double test dans le test, rendant ainsi les tests non dépendants de la couche de persistance.
<!-- Slide number: 6 -->
DAO : Types d'accès
Il peut exister autant de types de DAO que de moyens de persistance des données:
Fichiers : VSAM, binaires, XML, etc.
Base de données : relationnelles ou autres.
<!-- Slide number: 7 -->
Le DAO centralise toutes les opérations sur la base de données.
Publicité

<!-- Slide number: 8 -->
DTO : Définition
DTO :
Data Transfer Object (objet de transfert de données).
Son but est de simplifier les transferts de données entre les sous-systèmes d'une application logicielle.
<!-- Slide number: 9 -->
NB:
Le DTO se distingue du DAO
car il ne permet que de modifier ou d'accéder à ses données (avec des mutateurs et accesseurs).
<!-- Slide number: 10 -->
DTO :Utilité
Les DAOs sont situés dans une couche proche de la base de données
Publicité
Le code utilisateur des DAOs est souvent situé sur une autre couche distante
Les DTOs peuvent être utilisés pour transporter les données entre les différentes couches distantes
<!-- Slide number: 11 -->
DTO:problème à résoudre
Un client souhaite récupérer des données en interrogeant des objets distants non facilement transportables sur le réseau

<!-- Slide number: 12 -->
Exemple : pour récupérer les nom, prénom, salaire et lieu de travail d’un employé
S’il utilise les accesseurs des classes des objets (getNom, getPrenom, getSalaire, getLieu), plusieurs appels distants sont nécessaires
Les appels de méthode distants sont beaucoup plus coûteux que les appels locaux
<!-- Slide number: 13 -->
DTO:problème à résoudreDTO: solution
Le client demande un objet qui contient toutes les valeurs dont il a besoin
Publicité
Cet objet, un Data Transfert Object (DTO), est construit sur le site distant et passé en une seule fois au client

<!-- Slide number: 14 -->
Exemples d’utilisation des DTOs
- Transporter les données d’un objet distant pas transportable sur le réseau (pas sérialisable)
- Transporter plusieurs objets distants en un seul appel distant ; par exemple une facture avec toutes les lignes de facture et les informations sur les produits
<!-- Slide number: 15 -->
