Nano Hash - криптовалюты, майнинг, программирование

Зачем использовать шаблон фасада в EJB?

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

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

Верно ли приведенное выше утверждение?

28.05.2011

Ответы:


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

2

Статья, которую вы цитируете, ПОЛНОСТЬЮ устарела. Проверьте дату, она с 2002 года.

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

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

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

28.05.2011
  • положим, идея узора фасада все еще актуальна, или теперь она тоже другая? Потому что даже статья, которую вы найдете на сайте Oracle, датирована 2002 годом. 29.05.2011
  • Конечно, шаблон «Фасад» по-прежнему актуален. Как и почти все шаблоны, это не то, что вы должны использовать вслепую. Используйте его только тогда, когда столкнетесь с проблемой, для решения которой предназначен шаблон. 29.05.2011
  • то статья не совсем устарела. 29.05.2011
  • Хорошо, если вы читали это о концепции Фасада, конечно. Это не устарело. Люди в 2090 году, вероятно, все еще могут прочитать статью об этом. Однако, как я уже упоминал, основной мотив статьи, по-видимому, заключается в использовании Facade специально для Entity Beans. это устарело. Мне эта статья не кажется общей статьей об объяснении паттерна Facade, но если она для вас, то наслаждайтесь ей за это ;) 29.05.2011

  • 3

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

    28.05.2011

    4

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

    28.05.2011
    Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..