2010-07-10 2 views
4

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

POJO (простой старый объект Java) Wikipedia

При вычислении программного обеспечения, POJO является акроним для Plain Old Java Object. Имя используется, чтобы подчеркнуть, что данный объект является обычным Java-объектом, а не специальным объектом, и в частности , а не Enterprise 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 BeanWikipedia

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

Значение объектаWikipedia

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

Бизнес-объектWikipedia

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

Связанный:

Difference between DTO, VO, POJO, JavaBeans? What is the difference between a JavaBean and a POJO? DDD: what's the use of the difference between entities and value objects?

+2

Каков ваш конкретный вопрос? В любом случае, связанный с этим: http://stackoverflow.com/questions/1612334/difference-between-dto-vo-pojo-javabeans – BalusC

+1

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

ответ

6

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

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

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

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

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

3

Вот мое взятие:

  1. Бизнес-объекты является общим термином для абстрактной идеи, что представляет вашу проблему. Вы можете использовать на любом языке. В Java, у вас есть дополнительные возможности для make, потому что они могут быть POJO или EJBs, изменяемые или неизменные.
  2. Объекты Value или 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

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

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

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

+0

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

0

Синтез (от ответов):

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

P.S: Помечено как сообщество wiki, так что смело редактируйте.

+0

Важно отметить, что EJB 3.x ** являются ** POJO –

+0

Обновлено. Я знаю только EJB 3.0, поэтому я не могу комментировать. –

Смежные вопросы