JDO против объекта значения
JDO - это технология персистентности Java, которая может использоваться для хранения POJO (простых старых объектов Java) в базах данных без необходимости понимания базовых реализаций различных хранилищ данных. Value Object (также известный как Data Transfer Object) - это абстрактный шаблон проектирования, который вводит концепцию простого держателя данных с целью передачи данных между несколькими уровнями и уровнями..
Что такое JDO?
JDO (объекты данных Java) предоставляет механизм для обеспечения постоянства объектов Java и доступа к базе данных. JDO обладает высокой прозрачностью, поскольку позволяет разработчикам приложений Java получать доступ к базовым данным без необходимости писать какой-либо код, специфичный для баз данных. JDO может использоваться на нескольких уровнях, включая Java Standard Edition, веб-уровень и серверы приложений. JDO API является альтернативой другому постоянству (сохранению объектов после аборта программы) объектов Java, таких как Сериализация, JDBC (Java DataBase Connectivity) и EJB CMP (Enterprise JavaBeans, архитектура Container Managed Persistence). JDO использует XML и расширение байт-кода. Основным преимуществом использования JDO API является то, что они могут хранить данные без необходимости изучения нового языка запросов, такого как SQL (который зависит от типа хранилища данных). JDO очень прост в использовании, поскольку разработчики могут сосредоточиться только на объектной модели своего домена. Кроме того, JDO оптимизирует код самостоятельно в соответствии с доступом к данным. Поскольку JDO API не является строгим в отношении типа хранилища данных, один и тот же интерфейс может использоваться разработчиками java-приложений для хранения java-объектов в любом хранилище данных, включая реляционную базу данных, объектную базу данных или XML. JDO очень переносим, потому что модификация или перекомпиляция не требуются для запуска на реализациях разных поставщиков.
Что такое Value Object?
Value Object, также известный как Data Transfer Objects (DTO), представляет собой простой абстрактный шаблон проектирования, который работает с контейнером данных для хранения данных с целью передачи данных между слоями и уровнями. Хотя наиболее точным термином для этого шаблона является объект передачи данных, из-за ошибки в первой версии Core J2EE он был представлен как объект значения. Хотя эта ошибка была исправлена во 2-м издании, это имя стало популярным и все еще интенсивно используется вместо объекта передачи данных (но следует отметить, что правильным термином является объект передачи данных). Шаблон проектирования DTO используется с объектными компонентами, JDBC и JDO для устранения проблем, возникающих в отношении изоляции и транзакций в корпоративных приложениях. Важно отметить, что это только простые держатели данных, используемые для передачи данных между клиентом и базой данных, и они не обеспечивают какой-либо устойчивости. DTO служит для использования в качестве объектов Serializable в традиционном EJB (так как бины сущностей до 3.0 не сериализуемы). На отдельном этапе сборки, определенном DTO, все данные, используемые представлением, собираются и маршалируются перед выпуском элемента управления на уровень представления..
В чем разница между JDO и Value Object?
На самом деле JDO - это технология персистентности, используемая для хранения объектов Java в базах данных, которая обеспечивает удобство для разработчиков, обрабатывая все детали уровня реализации и позволяя разработчикам сосредоточиться на кодировании, не зависящем от базы данных. Но объект Value представляет собой абстрактный шаблон проектирования (а не технологию), который предоставляет общий держатель данных, известный как объект передачи данных, который может содержать данные с целью передачи между клиентом и базами данных. JDO предоставляет возможность сохранения элементов данных, тогда как Value Object имеет дело только с временным хранением данных в течение периода передачи данных. Другими словами, Value Object не обеспечивает постоянство.