JDO vs Value Object
JDO - це технологія збереження Java, яка може бути використана для зберігання POJO (Plain Old Java Objects) у базах даних без необхідності розуміння базових реалізацій різних сховищ даних. Value Object (також відомий як "Object Transfer Data") - це абстрактний шаблон дизайну, який вводить поняття простого власника даних з метою передачі даних між декількома шарами та ярусами.
Що таке JDO?
JDO (Java Data Objects) забезпечує механізм для забезпечення стійкості до об'єктів Java та доступу до бази даних. JDO відрізняється високою прозорістю, оскільки дозволяє розробникам додатків Java отримувати доступ до базових даних без необхідності писати будь-який код, характерний для баз даних. JDO може використовуватися в декількох рівнях, включаючи стандартну версію Java, веб-рівень та сервери додатків. API JDO є альтернативою іншій стійкості (зберігання об’єктів після переривання програми) таких об'єктів Java, як серіалізація, JDBC (з'єднання Java DataBase) та EJB CMP (Enterprise JavaBeans architecture Container Managed Peristence). JDO використовує XML та вдосконалення байт-коду. Основна перевага використання JDO API полягає в тому, що вони можуть зберігати дані без необхідності вивчення нової мови запитів, наприклад SQL (що залежить від типу зберігання даних). JDO дуже простий у використанні, оскільки розробники можуть зосередитись лише на своїй об’єктній моделі домену. Не тільки це, JDO оптимізує код сам по собі відповідно до доступу до даних. Оскільки API JDO не є строгим щодо типу сховища даних, розробники додатків java можуть використовувати один інтерфейс для зберігання об'єктів Java у будь-якому сховищі даних, включаючи реляційну базу даних, об’єктну базу даних або XML. JDO є дуже портативним, оскільки модифікація чи перекомпіляція не потрібні для запуску різних реалізацій постачальника.
Що таке об'єкт цінності?
Об'єкт значення також відомий як "Об'єкти передачі даних" (DTO) - це проста абстрактна модель дизайну, яка стосується контейнера даних для зберігання даних для передачі даних між шарами та ярусами. Хоча найбільш точним терміном для цього шаблону є Об'єкт передачі даних, через помилку в першій версії Core J2EE він був представлений як об'єкт значення. Хоча ця помилка була виправлена у другому виданні, ця назва стала популярною та все ще використовується широко замість Об'єкту передачі даних (але слід зазначити, що правильним терміном є Об'єкт передачі даних). Для виправлення проблем, що виникають з приводу ізоляції та транзакцій у корпоративних програмах, використовується схема дизайну DTO з об'єктами бобів, JDBC та JDO. Важливо зазначити, що це лише прості власники даних, які використовуються для передачі даних між клієнтом і базою даних, і вони не забезпечують збереження будь-якого роду. DTO служить меті виступати в ролі об'єктів, що є серіалізаційними в традиційних EJB (оскільки сутність об'єкта до 3.0 не може бути серіалізується). На окремому етапі складання, визначеному DTO, всі дані, що використовуються в представленні даних, збираються та маршируються до виходу елемента управління на рівень презентації.
Яка різниця між JDO та Value Object?
Насправді JDO - це технологія стійкості, яка використовується для зберігання об'єктів Java в базах даних, яка забезпечує зручність розробникам, обробляючи всі деталі рівня реалізації та дозволяючи розробникам зосередитись на кодуванні, яке не залежить від бази даних. Але, Value Object являє собою абстрактний шаблон дизайну (а не технологію), який забезпечує загальний власник даних, відомий як "Об'єкт передачі даних", який може зберігати дані для передачі між клієнтом і базами даних. JDO забезпечує можливість зберігання даних, тоді як Value Object займається тимчасовим збереженням даних протягом періоду передачі даних. Іншими словами, Value Object не забезпечує стійкості.