8 votes

Couches domaine, DAO et service

J'ai besoin d'apprendre la différence entre les types de méthodes (en termes de logique commerciale) qui doivent se trouver dans les objets des couches Domaine, DAO et Service.

Par exemple, si je construis une petite application web pour créer, modifier et supprimer les données des clients, d'après ce que j'ai compris, je dois ajouter à l'intérieur de l'objet de la couche Domaine des méthodes qui permettent d'obtenir/de définir les propriétés de l'objet Clients, par exemple (getName, getDOB, setAddress, setPhone...etc).

Maintenant, ce que j'essaie d'apprendre, c'est quelles méthodes je dois mettre dans les objets DAO et les couches de service.

Merci d'avance pour votre temps et vos efforts.

9voto

lreeder Points 4646

De manière générale (pas spécifique à Hibernate ou Spring) :

La couche DAO contient des requêtes et des mises à jour pour sauvegarder votre couche de domaine dans votre base de données (généralement une base de données relationnelle, mais ce n'est pas obligatoire). Utilisez des interfaces pour abstraire votre DAO de la base de données réelle. Cela n'arrive pas souvent, mais parfois vous voulez changer de datastore (ou utiliser des mocks pour tester votre logique), et les interfaces rendent cela plus facile. Cela pourrait avoir des méthodes comme "save", "getById", etc.

La couche Service contient généralement votre logique métier et orchestre l'interaction entre la couche domaine et les DAO. Elle possède les méthodes qui ont un sens pour votre domaine particulier, comme "verifyBalance" ou "calculateTotalMileage".

8voto

xtraclass Points 445

DAO : méthodes "enveloppantes" pour "envelopper" les appels JPA, JDBC, SQL, noSQL ou autres pour accéder aux systèmes de bases de données.

Domaine : Les appels de la logique métier sont corrélés à un seul type d'entités (objets du domaine).

Service : Appels de logique métier corrélés à un groupe de type d'entités ou à un groupe de plusieurs entités du même type.

(Je ne suis pas sûr de l'anglais, désolé.......)

Cela signifie : La couche service est "plus grande" que la couche domaine, est souvent proche du front-end, appelle ou utilise souvent plusieurs objets du domaine.

Les objets de domaine encapsulent la plupart des éléments pour une partie du domaine (c'est pourquoi ils sont appelés D.O.).

Le DAO est juste une chose technique, parfois nécessaire, parfois non. Lorsque de vrais objets de domaine sont utilisés, alors souvent des "dépôts" sont utilisés pour cacher l'accès aux systèmes de base de données, ou pour ajouter des fonctionnalités spéciales de la base de données ou autre.

front-end --> méthode de service 1 --> d.o. A de type X, d.o. B de type X, Liste

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X