Что такое модель домена java?

Я изучаю весеннюю книгу, и они упоминают модель домена java. Что это?

5 ответов


модель домена (термин не является специфичным для Java) - это класс, который моделирует что-то в проблемной области, в отличие от класса, который существует по техническим причинам реализации.

экземпляры модели домена часто должны сохраняться в базе данных, и в Java они обычно соответствуют спецификации Java Beans, т. е. у них есть методы get и set для представления отдельных свойств и конструктора без параметров. Spring и другие фреймворки позволяют получить доступ эти свойства непосредственно в JSP.

например, в приложении магазина, некоторые из ваших классов модели домена будет продукт, заказ, ShoppingCart и клиент.


A модель предметной области концептуальная модель проблемной области. Под "моделью домена java" они просто подразумевают классы java, представляющие эту модель. В концепции нет ничего конкретного для java.

см. также Домен Управляемая Конструкция для подхода к фокусировать ваше развитие на потребностях домена дела.


Майкл Borgwardt это "модель домена (термин не является специфичным для Java) является классом" - это неправильно. Я очень удивлен, что так много людей согласны с этим ответом.

модель домена-это все классы, которые моделируют поведение решения. Это минимум, необходимый для выполнения требуемого поведения. Модель домена свободна от пользовательского интерфейса и функций сохраняемости (если проблема не связана с пользовательским интерфейсом или сохраняемостью).

Я видел домен модель реализована в одном классе, но это не дизайн объектно-ориентированное решение. В объектно-ориентированной модели домена каждое понятие имеет свой собственный класс, который реализует поведение, требуемое от этого понятия, и содержит необходимые поля для поддержания состояния класса.


давайте начнем с примера. Вы создаете приложение с будет использоваться некоторыми людьми в вашем населенном пункте. При разработке системы вы называете этих людей пользователями вашей системы. Также необходимо управлять списком ролей для этих людей в системе и данными проверки подлинности. Итак, вы решили создать концептуальную сущность в системе. Эта концептуальная сущность далее сопоставляется с объектом пользователя в программном решении (приложении). Теперь, когда вы представляете свою заявку, этот объект пользователя описывается как модель домена. Основная идея этого термина заключается только в этом. Вы можете дополнительно прочитать об этом в следующем ссылка на Википедию.


Я знаю, что прошло много времени с момента последнего сообщения здесь. Но важно, чтобы информация вокруг этой концепции была четкой. Модель домена часто представляет собой набор классов, представляющих определенную проблемную область. Концепция не привязана к какому-либо одному типу внедрения технологии. Я думаю, что это немного вводит в заблуждение, чтобы сказать :

"экземпляры модели домена часто должны сохраняться в базе данных, и в Java они обычно соответствуют спецификации Java Beans, т. е. они имеют методы get и set для представления отдельных свойств и конструктора без параметров. Spring и другие фреймворки позволяют получить доступ к этим свойствам непосредственно в вашем JSPs"

модели домена часто являются результатом доменного дизайна. Домен управляемый дизайн ключ к хорошей и надежной модели домена. Я предлагаю прочитать книгу Эрика Эванса "доменный дизайн", чтобы дать вам лучшее понимание.

классы модели предметной области есть информация, связанная с ними, но поведение, на мой взгляд, важнее данных в этом контексте. Большая ошибка в доменном дизайне заключается в создании классов данных ,представляющих данные сущности домена, например customer, и предоставляющих только общедоступные геттеры и сеттеры для атрибутов customer. Эти объекты имеют тенденцию просто имитировать структуру базы данных, и в результате фактическая бизнес-логика с большей вероятностью будет находиться в доменных службах, в результате чего анемичной домена модель. Эта модель ближе к Сценарий Транзакции чем модель домена.