Зачем использовать фасадный рисунок в EJB? - PullRequest
2 голосов
/ 29 мая 2011

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

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

Является ли приведенное выше утверждение верным?

Ответы [ 4 ]

4 голосов
/ 29 мая 2011
  • Предотвращение тесной связи между клиентом и бизнес-объектами, повышение управляемости.
  • Сокращение количества мелких вызовов методов приводит к минимизации вызовов вызовов методов по сети, обеспечивая грубый доступ для клиентов.
  • Может иметь централизованные ограничения безопасности и транзакций.
  • Большая гибкость и способность справляться с изменениями.
  • Предоставление только требуемого и предоставление более простого интерфейса для клиентов, скрывая основную сложность и внутренние детали, взаимозависимости между бизнес-компонентами.
2 голосов
/ 29 мая 2011

Цитируемая статья ПОЛНОСТЬЮ устарела.Проверьте дату, это 2002 год.

В EJB больше не существует такого объекта как бин сущности (в настоящее время они сохраняются для обратной совместимости, но находятся на грани полной очистки).Бобы сущностей, где неуклюжие вещи;объект модели (например, Person), который полностью живет в контейнере и где доступ к каждому его свойству (например, getName, getAge) требовал вызова удаленного контейнера.

В настоящее время у нас есть объекты JPA, которыеявляются POJO и содержат только данные.Не путайте сущность JPA с этим древним EJB-компонентом.Они звучат одинаково, но это совершенно разные вещи.Объекты JPA можно безопасно отправить (удаленному) клиенту.Если вы действительно обеспокоены тем, что имена, используемые в вашей сущности, раскрывают структуру вашей БД, вы можете использовать файлы сопоставления XML вместо аннотаций и использовать совершенно разные имена.

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

1 голос
/ 29 мая 2011

Это для упрощения работы клиента. Фасад представляет простой интерфейс и скрывает сложность модели от клиента. Это также позволяет модели меняться без влияния на клиента, если фасад не меняет своего интерфейса.

0 голосов
/ 29 мая 2011

Отсоединяет логику приложения от бизнес-логики.
Таким образом, фактические структуры данных и реализация могут меняться, не нарушая существующий код с использованием API.
Конечно, он скрывает структуру данных от «неизвестных» приложений, если вы выставляете свои компоненты на внешние сети

...