Qu'est-ce que java modèle de domaine?

j'étudie un livre de printemps et ils mentionnent le modèle de domaine java. Qu'est-ce que cela?

28
demandé sur skaffman 2011-02-06 16:51:14

5 réponses

un modèle de domaine (le terme N'est pas du tout spécifique à Java) est une classe qui modélise quelque chose dans le domaine du problème, par opposition à une classe qui existe pour des raisons d'implémentation technique.

les instances de modèle de domaine doivent souvent être maintenues dans une base de données, et en Java, elles sont typiquement conformes à la spécification Java Beans, c'est-à-dire qu'elles ont des méthodes get et set pour représenter des propriétés individuelles et un constructeur sans paramètres. Le ressort et d'autres cadres vous permettent d'accéder à ces propriétés directement dans votre JSPs.

par exemple, dans une application de magasin, certaines de vos classes de modèles de domaine seraient produit, Commande, panier et client.

33
répondu Michael Borgwardt 2011-02-06 13:58:26

modèle de Domaine est un modèle conceptuel du domaine du problème. Par "java domain model", on entend simplement les classes java représentant Ce modèle. Il n'y a rien de spécifique à java dans le concept.

Voir aussi Domaine Driven Design pour une approche visant à concentrer votre développement sur les besoins du domaine d'activité.

8
répondu Don Roby 2011-02-06 14:00:41

réponse de Michael Borgwartt "Un modèle de domaine (le terme n'est pas du tout Java spécifique) est une classe" est erroné. Je suis très surpris de voir de si nombreux d'accord avec cette réponse.

un modèle de domaine est toutes les classes qui modélisent le comportement de la solution. C'est le minimum nécessaire pour accomplir le comportement requis. Le modèle de domaine est libre de L'UI et de la fonctionnalité de persistance (à moins que le problème tourne autour de L'UI ou de la persistance).

j'ai vu domaine modèle mis en œuvre dans une classe mais qui n'est pas la conception d'un objet-orienté solution. Dans un modèle de domaine orienté objet, chaque concept a sa propre classe qui implémente le comportement requis de ce concept et contient les champs nécessaires pour maintenir l'état de la classe.

5
répondu okaygo 2012-11-08 07:56:57

commençons par un exemple. Vous créez une application avec will qui sera utilisée par certaines personnes dans votre localité. Lors de la conception du système, vous appelez ces personnes utilisateurs de votre système. Vous devez également gérer une liste des rôles de ces personnes dans le système et l'information d'authentification. Alors, vous décidez de créer une entité conceptuelle dans le système. Cette entité conceptuelle est ensuite mappée à un objet utilisateur dans votre solution logicielle (votre application). Maintenant, lorsque vous représentez votre demande, vous décrivez cet objet utilisateur comme un modèle de domaine. L'idée de base derrière ce terme est que seulement. Vous pouvez en savoir plus à ce sujet dans le lien Wikipédia.

4
répondu Vijay Shanker Dubey 2011-02-06 14:09:13

je sais qu'il a été un long temps depuis le dernier post ici. Mais il est important que les informations sur ce concept soient claires. Un modèle de domaine est souvent un ensemble de classes qui représentent un problème particulier domaine de. Le concept n'est lié à aucun type de mise en œuvre technologique. Je pense que c'est un peu trompeur de dire :

"les instances du modèle de domaine doivent souvent être maintenues dans une base de données, et en Java, elles sont généralement conformes à la spécification Java Beans, c'est-à-dire ils ont des méthodes get et set pour représenter des propriétés individuelles et un constructeur sans paramètre. Spring et d'autres cadres vous permettent d'accéder à ces propriétés directement dans vos JSPs"

les Modèles de domaine sont souvent le résultat d'une conception par domaine. La conception par domaine est la clé d'un bon et robuste modèle de domaine. Je vous suggère de lire le livre D'Eric Evans intitulé Domain Driven Design, pour vous donner une meilleure compréhension.

les classes de modèles de domaine ont informations associées pour eux, mais le comportement à mon avis, est plus important que les données dans ce contexte. Une grosse erreur dans le domaine driven design est de créer des classes de données qui représentent les données d'une entité du domaine ,comme le client, et ne fournissent que des getters publics et des setters pour les attributs du client. Ces objets tendent juste à imiter votre structure de base de données et en conséquence la logique d'affaires réelle est plus susceptible de résider dans les services de domaine , résultant en un anémique de domaine modèle. Ce modèle est plus proche de l' Script De Transaction qu'un modèle de domaine.

4
répondu Noel Ady 2013-08-24 22:07:25