J'ai une question que je ne l'ai jamais été en mesure de résoudre:architecture en couches en Java EE
Compte tenu de ces deux l'architecture
1er
UI layer
|
Application layer
|
Domain Layer
|
Infrastructure Layer
2ème
Client Tiers
|
Presentation Tiers
|
Business Tiers
|
Integration Tiers
|
Resources Tiers
Qu'est-ce que sont la différence entre eux.
Où se trouvent les beans entité dans ces architectures. Si j'ai une couche de gestion avec un objet qui implémente la logique métier, pourquoi devrais-je ajouter un comportement dans les beans entité. J'ai lu quelque part que c'est un anti modèle d'avoir des objets de modèle de domaine sans comportement.
Merci
Mise à jour
Ceci est en fait un projet (formation) que je dois faire pour obtenir mon msc dans les systèmes distribués.
Ce sont en fait les technologies que je utilise
Struts 2 JPA HSQLDB
Donc, si je comprends bien
Mon application se composent de
Une couche client (Navigateur web Une couche de présentation (struts 2) Une couche métier (POJOs + JPA) Une couche d'intégration (avec DAOs hibernate) Une couche de ressources (HSQLDB)
Mais comme la couche de présentation, de gestion et d'intégration est implémentée sur le même serveur (tomact), je n'ai qu'une architecture à trois niveaux. Ai-je raison ?
En ce qui concerne l'inclusion du comportement dans mes objets JPA, c'est généralement ce que j'avais l'habitude de faire: Avoir un dao pour chaque entité JPA. Avoir un bean (comme un EJB) qui gèrerait la logique métier requise. Donc, je ne mets jamais beahvior sur les objets JPA.
Dire par exemple que je voulais faire une demande d'achat. J'aurais un catalogueManager qui m'aiderait à interagir avec des articles, des fournisseurs. J'aurais aussi un EmployeeManager qui m'aiderait à interagir avec les employés. Et enfin un PurchaseRequestManager qui utiliserait les deux objets métier précédents pour faire un PurchaseRequest. Maintenant, ce que vous me dites est de mettre les méthodes que j'ai dans PurchaseManager dans l'entité JPA PurchaseRequest, et faites de même pour les méthodes dans EmployeeManager => pour les mettre dans l'entité JPA Employé.
Mais que se passerait-il si mon objet employé était également utilisé pour le département des ressources humaines, j'aurais aussi besoin d'y mettre d'autres méthodes. Pour une grande application, j'aurais beaucoup de méthodes dans l'entité JPA des employés. Cela ne serait-il pas contre-productif?
grâce