Bonsoir,
J'ai besoin de votre aide pour comprendre avec précision l'architecture logicielle et le découpage en couches.
Prenons l'exemple d'une application gérant des utilisateurs stockés en BDD (table User avec un champ (id, name, pass)).
On a besoin d'un objet métier "User" (qui comme son nom l'indique est l'objet qui sera manipulé dans l'application)
Afin de faire persister cet objet on rajoute des annotations JPA pour obtenir finalement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class User{ int id; String name; String pass; +get/set }
Donc voici enfin ma question, je ne comprends pas pourquoi on a "le droit" d'annoter l'objet métier? En effet, pour moi l'objet métier devrait être indépendant de la manière dont il persiste. Ainsi, si demain, les users ne soient plus seulement en bdd mais aussi stockés ds un fichier Xml. Comment fait-on? On crée un nouvel objet? mais du coup il faut refaire toutes la partie traitement?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @entity public class User{ @Id int id; String name; String pass; +get/set }
Pour moi il serait plus logique d'avoir un objet métier
puis d'avoir un objet de type persitent BDD
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class User{ int id; String name; String pass; +get/set }
puis un objet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class UserBDD{ int id; String name; String pass; +get/set }
Rem : Éventuellement, ces objets pourraient ne pas avoir le même nombre d'attributs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public class UserXml{ int id; String name; String pass; +get/set }
Puis on rajouterait 2 composants chargés de créer des objets métiers (user). Un transformant des UserXml en user et l'autre des userBdd et user.
Ainsi toute notre partie traitement n'aurait à subir aucun changement.
Ex : la fonction métier : findAllUser renverrait des users qu'ils viennent de la bdd ou du xml.
Etant donné que sur le net tous les exemples font comme ca en quoi mon raisonnement est faux? et surtout comment faire pour gérer des éléments
pouvant venir de 2 sources différentes?
D'avance merci pour votre aide.
Partager