У меня есть вопрос, который я никогда не был в состоянии решить:Многоуровневая архитектура в Java EE
Учитывая эти две архитектуры
1-й
UI layer
|
Application layer
|
Domain Layer
|
Infrastructure Layer
второй
Client Tiers
|
Presentation Tiers
|
Business Tiers
|
Integration Tiers
|
Resources Tiers
Что разница между ними.
В каких архитектурных объектах лежат сущности-бобы. Если у меня есть бизнес-уровень с объектом, который реализует бизнес-логику, почему бы мне добавить поведение в сущности. Я где-то читал, что анти-шаблон имеет объекты модели домена без поведения.
Благодаря
Update
Это на самом деле проект (обучение), что мне нужно сделать, чтобы получить мой Магистра в распределенных системах.
Это на самом деле технологии я использую
Struts 2 JPA HSQLDB
Так что, если я понимаю, хорошо
Мое приложение состоит из
А уровня клиента (веб-браузер) Уровень презентации (стойки 2) Бизнес-уровень (POJO + JPA) Уровень интеграции (с гибернативными DAO) Ресурсный слой (HSQLDB)
Но, поскольку уровень представления, бизнес и интеграция реализованы на одном сервере (tomact), у меня есть только трехуровневая архитектура. Я прав ?
Что касается включения поведения в объекты JPA, как правило, это то, что я использовал: Имейте dao для каждого объекта JPA. Имейте компонент (например, EJB), который будет управлять требуемой бизнес-логикой. Поэтому я никогда не ставил beahvior на объекты JPA.
Скажем, например, я хотел сделать запрос на покупку. У меня бы появился менеджер CatalogueManager, который помог бы мне взаимодействовать с товарами, поставщиками. У меня также был бы EmployeeManager, который помог бы мне взаимодействовать с сотрудниками. И, наконец, PurchaseRequestManager, который использовал бы два предыдущих бизнес-объекта для создания PurchaseRequest.
Теперь, что вы говорите мне, нужно поместить методы, которые у меня есть в PurchaseManager в сущности PurchaseRequest JPA, и сделать то же самое для методов в EmployeeManager =>, чтобы поместить их в сущность JPA Employee.
Но что было бы, если бы мой объект-сотрудник также использовался для отдела человеческих ресурсов, мне также нужно было бы использовать другие методы. Для большого приложения у меня было бы много методов в сущности JPA сотрудника. Разве это не будет контрпродуктивно?
благодаря