Que sont les objets de domaine et les services de domaine dans l'architecture et la conception logicielles? En quoi sont-ils différents de la couche de logique métier?
Réponses
Trop de publicités?Différentes personnes utilisent ces termes quelque peu différents moyens, mais voici mon point de vue:
1) "Entreprise" et "domaine" sont à peu près synonymes. "Domaine" est un peu plus général que ça ne fait pas l'hypothèse que vous êtes en train de rédiger une application d'entreprise. Donc, si nous étions en train d'écrire un scientifique application ou un jeu, il serait préférable de se référer à la partie correspondante du code en tant que "domaine" code plutôt que des "affaires" du code. Donc, dans la suite de cette explication, je vais utiliser "domaine", car il est plus général.
2) "la logique de Domaine" comprend à la fois "des objets du domaine" et "services de domaine". Pour diverses raisons (techniques et autres) de nombreuses architectures emploient une conception où la logique de domaine est divisé en objets pour le stockage des données ("objets") et des objets à manipuler (les"services de domaine"). Martin Fowler et d'autres ont souligné que ce n'est pas très OO depuis une grande partie de l'OO concept est de mettre de la fonctionnalité ainsi que les données, et c'est vrai, mais elle est ce qu'elle est. Objets du domaine sont les données et les services de domaine, ce sont les choses-avec-la partie données.
3) Dans le domain-driven design, l'idée est de revenir à vrai OO conception, et donc les différentes méthodes de service font leur chemin de retour vers les objets du domaine, de sorte que vous avez des objets dans le OO sens, plutôt que de ce qui est parfois appelé "anémique" des objets. Dans un DDD le domaine des objets eux-mêmes sont plus robustes et donc, ils forment le domaine de la logique. En réalité, il y a peut-être encore certains services de domaine trop, mais c'est généralement de plus petite DDD que dans une approche plus traditionnelle des objets du domaine et services de modèle.