p
u
b
l
i
c
i
t
é
publicité

Discussion: Domain service ?

  1. #1
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    décembre 2008
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2008
    Messages : 128
    Points : 144
    Points
    144

    Par défaut Domain service ?

    Bonjour,

    Comment définiriez vous ce qu'est le domain service au sein d'une application mvc (par exemple jee). Pour ma part je m'en sert comme couche intermédiaire pour découpler ma couche Controller et ma couche Model. quelque chose du type Controller s'adresse a domain service pour obtenir implémentation des DAO. Qu'en pensez vous ?

  2. #2
    Membre Expert
    Inscrit en
    janvier 2011
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : janvier 2011
    Messages : 359
    Points : 1 062
    Points
    1 062

    Par défaut

    Bonjour,

    Je connais la notion de Domain Service telle que définie dans Domain Driven Design. Il s'agit d'un service qui réside dans la couche Domaine (= business) et fournit des opérations transversales à plusieurs entités métier ou qui ne semblent avoir leur place dans aucune entité.

    Exemple : transférerFonds() n'a pas vraiment sa place dans l'entité CompteBancaire car cela voudrait dire que le compte bancaire source va devoir manipuler le solde du compte bancaire de destination, ce qui n'est pas forcément élégant. On peut alors créer un ServiceTransfertFonds dans la couche domaine avec une méthode transférerFonds(CompteBancaire source, CompteBancaire destination, montant).

    Pour revenir au problème d'origine, effectivement, certains utilisent aussi des Domain Services pour servir de couche intermédiaire entre Contrôleur et DAO (Repositories en langage DDD). Par contre il ne s'agit pas juste d'un "DAOLocator" qui va balancer le DAO adéquat au Contrôleur. Ce type de Domain Service va carrément implémenter les mêmes méthodes que celles du DAO, c'est en fait un passe-plat ou une façade entre Contrôleur et DAO. C'est aussi l'endroit où au passage on peut faire la conversion entre objets métier et DTO si on n'a pas envie que le Contrôleur manipule des objets métier purs.

    Il faut quand même noter qu'il y a discussion autour du fait qu'il est bon que le contrôleur accède directement aux DAO ou non. Personnellement ça ne me choque pas qu'il le fasse, surtout dans les applis modérément complexes.

    Cf http://stackoverflow.com/questions/3...the-controller
    http://stackoverflow.com/questions/8...ories-directly

  3. #3
    Membre habitué Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    décembre 2008
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2008
    Messages : 128
    Points : 144
    Points
    144

    Par défaut

    merci pour votre éclaircissement.

Discussions similaires

  1. Domain Service class
    Par sebRD dans le forum Accès aux données
    Réponses: 7
    Dernier message: 11/05/2011, 14h09
  2. personalisation des updates des domaine service
    Par Tardiff Jean-François dans le forum Silverlight
    Réponses: 0
    Dernier message: 10/01/2011, 14h45
  3. Domain Service Class Introuvable
    Par anthride dans le forum Silverlight
    Réponses: 2
    Dernier message: 12/10/2010, 08h52
  4. RIA Domain Service: Erreur 504
    Par FranckRav dans le forum Silverlight
    Réponses: 3
    Dernier message: 31/05/2010, 14h49
  5. Application avec plusieurs "Domain Service"
    Par Alexs dans le forum Silverlight
    Réponses: 3
    Dernier message: 30/04/2010, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo