Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

См. также Driven Design для подхода к фокусированию вашего развития на потребностях бизнес-домена.

Ответ 3

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

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

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

Ответ 4

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

Ответ 5

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

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

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

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

Ответ 6

С точки зрения непрофессионала, ваш пакет домена является объектным представлением элементов, которые вам, в первую очередь, но не обязательно должны отображать поля пользовательского интерфейса, такие как имя пользователя, client_info, специфичные для решения pojos и т.д. Классы, содержащиеся в пакете домена, будут использоваться в DAO (DATA ACCESS OBECT), где дао будет запрашивать базу данных, сопоставлять эти поля с классами в домене и возвращать их. Или вы можете использовать фреймворк, такой как hibernate, и вернуть этот объект, где запросы к БД будут обрабатываться фреймворком, таким как hibernate.

Этот ответ более специфичен для MVC и Java, но подробно описывает одну из возможных реализаций.