Patron d'objet de transfert
Le modèle d'objet de transfert est utilisé pour transmettre des données avec plusieurs attributs du client au serveur en une seule fois. Les objets de transfert sont également appelés objets de valeur. Un objet de transfert est une simple classe POJO avec des méthodes getter/setter ; il est sérialisable, il peut donc être transmis sur le réseau. Il n'a aucun comportement. Les classes métier côté serveur lisent généralement les données de la base de données, remplissent le POJO et l'envoient au client ou le transmettent par valeur. Pour le client, l'objet de transfert est en lecture seule. Le client peut créer son propre objet de transfert et le transmettre au serveur afin de mettre à jour les valeurs dans la base de données en une seule fois. Voici les entités de ce modèle de conception.
- Objet métier- Service métier qui remplit les objets de transfert avec des données.
- Objet de transfert- POJO simple, possède uniquement des méthodes pour définir/obtenir des propriétés.
- Client- Le client peut envoyer des requêtes ou envoyer des objets de transfert aux objets métier.
summary
intention
Utilisé pour simplifier le transfert de données entre les couches réseau ou applicatives. Il encapsule les données en créant une classe avec plusieurs propriétés ; ces propriétés représentent les données à transférer.
Problème principal résolu
- Résout les problèmes d'efficacité et d'encapsulation lorsque des données sont transférées entre les couches dans les systèmes distribués, en particulier dans les applications multicouches.
Cas d'utilisation
- Lorsque de grandes quantités de données doivent être transférées entre le client et le serveur, en particulier dans les services web ou les appels de procédure distante (RPC).
Approche d'implémentation
- Classe d'objet de transfert: Définir une classe contenant plusieurs attributs ; ces attributs représentent les données à transférer.
- Couche d'accès aux données: Responsable de l'extraction des données depuis la base de données ou d'autres sources de données et de leur intégration dans des objets de transfert.
- Couche de logique métier: Facultative, gère la logique métier, peut avoir besoin d'utiliser des objets de transfert.
- Couche de présentation ou client: Utilise des objets de transfert pour afficher des données ou comme support de données pour les entrées utilisateur.
Code clé
- Classe d'objet de transfert: Contient des attributs et éventuellement une logique métier, pour l'encapsulation et le transfert des données.
Exemple d'application
- Application web: La couche de présentation obtient ou envoie des données depuis/vers le serveur via des objets de transfert.
Avantages
- Réduire la surcharge de communication réseau: Réduit le nombre de requêtes réseau en transférant plusieurs données en une seule fois.
- Encapsulation: L'objet de transfert sert de support d'encapsulation pour les données, en masquant la structure de données interne.
- Facile à maintenir: Gère de manière centralisée les données transférées, facile à modifier et à étendre.
Inconvénients
- Utilisation excessive: Peut augmenter la complexité du système en raison de la création d'un trop grand nombre d'objets de transfert.
Suggestions d'utilisation
- Lorsque de grandes quantités de données doivent être transférées entre différentes couches d’une application multicouche, envisagez d’utiliser le modèle Transfer Object.
Notes
- Les objets de transfert doivent rester légers et éviter de contenir une logique métier excessive.
Les différents rôles principaux impliqués
-
Classe Transfer Object:
- Encapsule les données qui doivent être transférées.
-
Couche d’accès aux données:
- Fournit des données et peut être chargée de remplir les objets de transfert avec ces données.
-
Couche de logique métier (facultative):
- Facultative, gère la logique métier, peut utiliser des objets de transfert.
-
Couche de présentation ou client:
- Utilise des objets de transfert pour afficher des données ou envoyer des requêtes.
Le modèle Transfer Object offre un moyen efficace de réduire les temps de communication réseau et de simplifier le processus de transfert de données en encapsulant les données transférées dans un objet.
Implémentation
Nous allons en créer un comme objet métierStudentBOet un comme objet de transfertStudentVO, qui représentent tous deux notre entité.
TransferObjectPatternDemoLa classe ici agit comme un client et utiliseraStudentBOetStudentpour démontrer le modèle de conception Transfer Object.
Étape 1
Créer un objet de transfert.
StudentVO.java
Étape 2
Créer un objet métier.
StudentBO.java
Étape 3
UtilisationStudentBOpour démontrer le modèle de conception Transfer Object.
TransferObjectPatternDemo.java
Étape 4
Exécutez le programme et affichez le résultat :
Student: [RollNo : 0, Name : Robert ] Student: [RollNo : 1, Name : John ] Student: Roll No 0, updated in the database Student: [RollNo : 0, Name : Michael ]autres extensions