En regardant l'exemple d'un objet de domaine dans le didacticiel Zend QuickStart, et d'autres exemples en considérant des modèles DAO / VO, ils semblent tous deux très similaires.
Peut-on déduire que "l'objet de la valeur" est identique à dire "objet de domaine"? P>
Sinon, pouvez-vous clarifier les différences entre ceux-ci? P>
Quelle est la fonction d'un, et si la fonction d'une autre? p>
Je le demande parce que les deux sont composés de getters et de setters et rien de plus que cela. Il semble que, ils font la même fonction ... p>
Donc, Zend Framework Documentation Documentation appelée Ceci, objet de domaine: < / p> 1) strong> strictement parlant, sommes-nous confrontés à un "objet de domaine anémique"? p> 2) strong> est-il appelé "objet de domaine" juste em> car il contient la logique de domaine? p> Merci beaucoup P> P>
3 Réponses :
Ils peuvent em> être la même chose. Et dans de nombreux cas, ils sont. Cependant: p>
Par exemple, dans le cas d'un objet de la facture code> code>, il sera identique à l'objet de valeur, puis vous pouvez utiliser la même classe pour les deux - il aura un numéro de facture, des éléments commandés , prix total. P>
D'autre part, un objet de domaine code> utilisateur code> aura un champ de mot de passe et un champ de messagerie, que vous souhaitez pouvoir traiter dans votre système, mais vous ne devez jamais envoyer à d'autres systèmes. Par conséquent, vous avez besoin d'un nouvel objet de valeur, qui manque ces deux champs. P>
typiquement un objet de valeur encapsule quelque chose qui a une valeur: devise, dates, température, etc. Ils peuvent contenir une valeur et des unités, mais ils ne sont pas complexes. P>
Un objet de domaine est susceptible d'être plus complexe (sauf s'il s'agit d'un objet de domaine anémique, qui est un tas de getters et de setters prétendant être un objet de domaine) car il contient une logique de domaine. P>
Par exemple, vous pourriez avoir un objet de domaine de facturation contenant de nombreuses lignes de facturation (une ligne pour chaque élément de facturation) et chaque ligne de facturation pourrait avoir un montant net, un montant de l'impôt et un élément de facturation. Les montants et peut-être que l'élément de facturation serait généralement des objets de valeur et seraient raisonnablement simples. P>
La facture elle-même pourrait être compliquée des taux d'intérêt de retard de paiement, de prendre en charge un processus d'approbation ou de prise en charge de votre système de comptabilité. P>
L'objet de valeur est suffisamment simple pour être réutilisable à travers différents domaines. Les objets de domaine modélisent votre domaine actuel et sont généralement écrits pour modéliser votre entreprise ou votre domaine spécifique, y compris votre logique commerciale. P>
La raison pour laquelle vous verrez souvent peu de différence entre eux est que de nombreux développeurs utiliseront une conception d'objet de script / transfert de données de transaction, mais appelez-le un modèle de domaine. Ils étiquetent leurs collections de getters et de régleurs "Objets de domaine". p>
Bien sûr, je parle dans le bon sens de la conception générique. YMMV Si vous êtes dans une communauté qui utilise différentes définitions pour ces termes.
Pouvons-nous dire qu'il est faux d'appeler "Conception d'objet de transfert de données / transfert de données par" modèle de domaine ", à moins que cela ne parle de manière à ce que le modèle de domaine ne signifie qu'un" modèle "de MVC, lié à un domaine donné?
Je pense que nous devons différencier entre "modèle de domaine", qui est un modèle de conception spécifique et "modèle de domaine" ou "modèle", qui est un terme plus général. Vous pouvez modéliser votre domaine sans utiliser de modèle de domaine. Le M de MVC peut être un modèle de domaine, mais peut également être un modèle de domaine (ou modèle d'objet, etc.)
Construire sur les réponses précédentes, je suis d'avis qu'ils sont