Salut à tous
Je voudrais savoir quel est la difference entre classe applicative et classe metier:
Merci pour vos aides
@+Sali
Salut à tous
Je voudrais savoir quel est la difference entre classe applicative et classe metier:
Merci pour vos aides
@+Sali
Sur le fond aucune, dans les deux cas il s'agit d'une classe. Après, tout dépend du contexte dans lequel tu utilise ces termes.
On fait la distinction entre classes métier et classes applicatives pour, côté métier isoler des classes qui représentent fondamentalement les objets du métier que ton application manipule (par exemple : client, facture, compte,...) et côté application, isoler les classes qui sont spécifiques de l'application que tu fabriques.
Tu retrouveras dans cette catégorie "applicatives", des classes qui agrèges des classes métiers ou des "valueobject" spécifiques, pour un besoin particulier de présentation par exemple, des classes qui ordonnent une série de classes métier pour un besoin spécifique, des classes genre "Comparable" qui savent justement triéer des classes métier suivant un certain critère, des classes "algorithme" qui calculent qq chose qui n'est pas intrinsèque au métier mais bien spécifique de ton application, etc...
En bref, tu trouveras dans la catégorie "métier" des classes potentiellement utilisables dans le contexte d'une autre application alors que dans la partie "application" des classes moins utilisables dans un autre contexte que l'appli que tu es entrain de faire (bien qu'elles puissent être réutilisable quand même !).
Personnellement, je pense que ce n'est pas si simple que ca et tout dépend justement du contexte dans lequel on emploit le terme "métier" et le terme "applicatif".
Par exemple les services métiers. Tu les place où ? Pour moi c'est à la frontière puisque cela comporte du métier mais dans une architecture liée à l'application.
D'où également mon doute en terme de réutilisabilité puisque la réutilisabilité des classes métiers est très faible et ce sont surtout les services qui ont de la valeur ajoutée puisqu'ils implémentent les règles de gestion.
Maintenant, ce n'est peut être qu'une question de vocabulaire. De ton pt de vue, les règles de gestion métier sont implémentés dans une classe métier ou dans une classe applicative ? La classe métier porte de la données simplement ou porte également des règles de gestion ?
Les services métier sont dans la couche métier !
La couche métier contient en effet 2 autres sous-catégories d'objets. Les entités métiers et les services métiers.
Un service applicatif utilisant par exemple plusieurs services métiers pour faire qq chose de spécifique à l'application.
Et même si mon explication est "simple", faire la "bonne" part des choses dans la réalité est difficile.
Attention aussi à ne pas tomber dans piège qui consiste à dire que seuls les "services" sont réutilisables. Les services utilisent des données, non ?
Alors les services ne peuvent pas être réutilisés si on ne se mets pas d'accord sur les données échangées !! Un problème bien connu des gens qui font de l'EDI !!!!!
Tout à fait mais on commence donc à parler de couche et non plus de classe.Envoyé par ego
Le prend pas mal, je disais ca parce que le découpage que tu donnais est celui que l'on donne toujours mais qu'il est trop simple et que cela induit en erreur les personnes qui le recoive. Comme tu le dit la réalité est beaucoup plus complexe et la réutilisabilité quelque chose de compliqué contrairement à ce qu'on a pu faire croire au début de l'objet.Envoyé par ego
Ce n'était pas le sens de ma remarque. Je disais simplement que la vrai valeur ajoutée de la réutilisabilité est dans les classes de services et non pas les classes de données. Mais c'est dernière font parties des éléments réutilisables.Envoyé par ego
n'y a t-il pas un tuto sur tout ça
Je ne sais pas s'il y a un tuto, mais en tout cas, il y a une quantite de documentation sur le sujet et notamment:
- la documentation du pattern *Domain model*, M.Fowler
mais aussi toute la discussion sur ce qu'englobe le terme Business model, et la separation que font certains de ce model en : Domain Model (metier) et Applicatif Model (applicatif).
- Domain Driven Design - E.Evans
Notamment toute la partie modelisation de la couche metier.
http://www.amazon.com/Domain-Driven-...7089851&sr=8-1
++
Partager