Являются ли они синонимами, подмножеством друг друга или совершенно разными? - PullRequest
4 голосов
/ 10 июля 2010

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

POJO (Простой старый объект Java) Википедии

В вычислительном программном обеспечении POJO является акроним для Простого Старого Объекта Java. имя используется, чтобы подчеркнуть, что данный объект является обычным Java-объектом, а не особый объект, и в частности не корпоративный JavaBean. Семестр был придуман Мартином Фаулером, Ребекка Парсонс и Джош МакКензи в Сентябрь 2000 года:

"We wondered why people were so against using regular objects in their
 systems and concluded that it was
 because simple objects lacked a fancy
 name. So we gave them one, and it's
 caught on very nicely."

Java Bean Википедия

JavaBeans - это программное обеспечение многократного использования компоненты для Java, которые могут быть манипулировали визуально в строителе инструмент. Практически это классы написано в программировании на Java язык, соответствующий определенному условность. Они привыкли инкапсулировать много объектов в один объект (боб), так что они могут быть передается как один объект боб а не как несколько человек объекты. JavaBean - это объект Java это сериализуемо, имеет нулевой конструктор, и позволяет получить доступ к свойства с использованием геттера и сеттера методы.

Объект значения Википедия

Объект передачи данных (DTO), ранее известный как объекты значения или VO, является шаблон проектирования, используемый для передачи данных между программным приложением подсистемы. DTO часто используются в соединение с объектами доступа к данным извлечь данные из базы данных.

Бизнес-объект Википедия

Бизнес-объект - это тип понятная сущность, будучи актером внутри бизнес-уровня в n-слойный объектно-ориентированный компьютер программа.

Связанный:

Разница между DTO, VO, POJO, JavaBeans? В чем разница между JavaBean и POJO? DDD: какая польза от разницы между сущностями и объектами-значениями?

Ответы [ 4 ]

6 голосов
/ 10 июля 2010

Не все эти классификации связаны между собой.Вот мое понимание:

  • POJO - это то, что предполагает его название - простой старый объект Java.В этом нет ничего особенного.И это именно то, что мы хотим передать, когда говорим, что объект является POJO.Сегодня большинство приложений используют некоторые виды базовых инфраструктур, и вместе с платформами предъявляются требования к объектам, которые будут интегрироваться с инфраструктурой - объект должен реализовывать интерфейс или расширять класс.Когда мы говорим, что объект является POJO, мы имеем в виду, что он является обычным объектом и не имеет каких-либо зависимостей от какой-либо среды.

  • JavaBean - это класс Java, который следует определенным соглашениям какописано в вашем вопросе.Такие объекты часто требуются определенными средами, которые используют отражение, чтобы выяснить свойства (доступные через getters / setters) объекта и манипулировать ими, например, bean-объекты, открытые для JSP, Spring-компонентов и т. Д. Хорошая вещь о JavaBeans состоит в том, что они все еще являются POJO,Несмотря на то, что они следуют определенным соглашениям, соглашения не определяются какой-либо конкретной платформой, а скорее определяются стандартом Sun Javabean, и классы по-прежнему являются простыми классами Java и не связаны с классами или интерфейсами какой-либо сторонней платформы.

  • Бизнес-объекты - это объекты, которые представляют объекты вашего бизнес-домена.Они обычно находятся на вашем бизнес-уровне - уровне, где находится вся бизнес-логика.Эти объекты обычно сопоставляются с сущностями хранилища, например таблицами.Этими объектами могут быть POJO, JavaBeans, EJB и т. Д.

  • Значимые объекты являются типом шаблона проектирования.В некоторых небольших веб-приложениях вы также можете использовать свои бизнес-объекты в веб-слое.Однако в более крупных приложениях или приложениях J2EE вы определяете объекты значений для перемещения информации с бизнес-уровня на веб-уровень.Вот почему они также называются объектами передачи данных (DTO).Эти объекты обычно имеют только те атрибуты, которые необходимы на веб-уровне, и оставляют после себя атрибуты бизнес-объектов, предназначенные для использования на бизнес-уровне.Они также могут иметь «вычисляемые» атрибуты, которые генерируются на бизнес-уровне.Использование этих шаблонов помогает отделить бизнес и веб-слои.

3 голосов
/ 10 июля 2010

Вот мое мнение:

  1. Бизнес-объекты - это общий термин для абстрактной идеи, которая представляет вашу проблему.Вы можете реализовать их на любом языке.В Java у вас есть дополнительный выбор, потому что они могут быть POJO или EJB, изменяемыми или неизменяемыми.
  2. Объекты значений или DTO используются для передачи данных между слоями.Они обычно неизменны.Они могут быть реализованы как POJO или Java Beans.Думайте о них как о другом подмножестве POJO.
  3. Java Bean соответствует исходной спецификации Sun.Они предназначались для обеспечения интерфейса, который позволил бы им легко подключаться к IDE в стиле VB.Думайте об этом как о подмножестве POJO.
  4. Люди иногда путаются в разнице между Java Beans и Enterprise Java Beans.Java Beans являются частью оригинальной спецификации Java 1.0, которая должна быть похожа на компоненты VB (помните "Bean Box"?).Enterprise Java Beans представляли собой спецификацию, которая описывала, как специальные объекты Java будут реализовывать специальные интерфейсы для взаимодействия с сервером приложений Java EE.Сервер приложений являлся монитором транзакций для архитектуры распределенных компонентов, которая могла бы обрабатывать потоки, постоянство, объединение в пул, жизненный цикл объекта, обмен сообщениями, именование и т. Д. EJB - это особый набор объектов Java, которые работают только в контексте приложения Java EEсервер.
  5. POJO может быть реализован в соответствии со стандартом Java Bean, но это не является обязательным требованием.Любой объект Java квалифицируется как POJO.Изначально он должен был отличать их от EJB версии 2.0, для которой требовалось несколько интерфейсов для правильной работы с сервером приложений Java EE.
1 голос
/ 10 июля 2010

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

Ошибочно использовать эти термины в качестве синонимов. Они явно имеют разные значения. Упомянутые определения (и те, которые приведены в других ответах) проясняют это.

Однако, если часто допустимо использовать многие (или даже все) эти термины для описания одного и того же объекта или объектов. Это все вопрос перспективы; то есть какой аспект объекта (ов) вы пытаетесь подчеркнуть.

0 голосов
/ 10 июля 2010

Синтез (из приведенных ответов):

  • POJO : Обычный объект без каких-либо зависимостей от какой-либо инфраструктуры. Его можно адаптировать к соответствию стандарту Java Bean, не являясь таким требованием.
  • JavaBean : Объект, соответствующий спецификации Sun JavaBean или Java 1.0 (см. «Бобовое поле»). Изначально они предназначались для предоставления интерфейса, чтобы их можно было без труда подключить к IDE в стиле VB. Может рассматриваться как подмножество POJO и оставаться независимым от структур. Он может использовать определенные механизмы, такие как отражение, для доступа к свойствам.
  • Enterprise Java Bean : Их не следует путать с Java Bean. С упрощениями, внесенными в версию 3.0, EJB можно рассматривать как эквивалент POJO. EJB сам по себе является спецификацией, описывающей специальные объекты Java, которые могут взаимодействовать с сервером Java EE. Сервер как таковой выполнял роль монитора транзакций в контексте архитектуры распределенных компонентов, обрабатывая такие вещи, как многопоточность, постоянство, объединение в пул, жизненный цикл объекта, обмен сообщениями и присвоение имен. Таким образом, EJB можно рассматривать как очень особенное подмножество, которое используется в контексте сервера приложений Java EE.
  • Бизнес-объект : теоретическая концепция или абстрактная идея, которая помогает представить данную проблему. Он представляет сущности бизнес-домена и находится на бизнес-уровне приложения. Они могут быть сопоставлены с сущностями в контексте постоянства. Объект может быть POJO / JavaBean / EJB и может быть изменяемым или неизменным.
  • Объект-значение / объект передачи данных : использует шаблон проектирования, который помогает разделить бизнес-и веб-уровни. Это соответствует контексту больших приложений, где объекты могут проходить между уровнями (например, бизнес-уровень и веб-уровень). Они обычно неизменны по своей природе и могут быть отформатированы как POJO или Java Beans. Одна особенность заключается в том, что они могут содержать вычисляемые атрибуты, которые генерируются на бизнес-уровне.

P.S: помечен как вики сообщества, поэтому не стесняйтесь редактировать.

...