JDO срещу стойностен обект
JDO е Java персистираща технология, която може да се използва за съхраняване на POJO (Plain Old Java Objects) в бази данни, без да е необходимо да се разбират основните реализации на различни хранилища за данни. Обектът на стойност (известен също като Обект за прехвърляне на данни) е абстрактен модел на дизайн, който въвежда концепцията за прост носител на данни с цел прехвърляне на данни между множество слоеве и нива.
Какво е JDO?
JDO (Java Data Objects) предоставя механизъм за осигуряване на постоянство на 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 е много преносим, тъй като не е необходима модификация или рекомпилация, за да се изпълняват различни реализации на доставчика. JDO е много преносим, тъй като не е необходима модификация или рекомпилация, за да се изпълняват различни реализации на доставчика. JDO е изключително преносим, тъй като не е необходима модификация или рекомпилация, за да се изпълняват различни реализации на доставчика.
Какво е стойностният обект?
Обект на стойност, известен също като Обекти за трансфер на данни (DTO) е прост абстрактен модел на дизайн, който се занимава с контейнер за данни, за да съхранява данни за целите на прехвърляне на данни между слоеве и нива. Въпреки че най-точният термин за този модел е обектът за прехвърляне на данни, поради грешка в първата версия на Core J2EE той беше въведен като Value Object. Въпреки че тази грешка беше поправена във второто издание, това име стана популярно и все още се използва интензивно вместо обект за прехвърляне на данни (но трябва да се отбележи, че правилният термин е обект за прехвърляне на данни). Моделът за проектиране на DTO се използва с обектни компоненти, JDBC и JDO за отстраняване на възникналите проблеми по отношение на изолирането и транзакциите в корпоративни приложения. Важно е да се отбележи, че това са само прости носители на данни, използвани за прехвърляне на данни между клиента и базата данни и те не осигуряват постоянство от какъвто и да е вид. DTO има за цел да действа като сериализуеми обекти в традиционния EJB (тъй като компонентите на обекти преди 3.0 не са сериализуеми). В отделна фаза на сглобяване, дефинирана от DTO, всички данни, използвани от изгледа, се събират и маршалират преди пускането на контролата в слоя за представяне.
Каква е разликата между JDO и Value Object?
JDO всъщност е персистираща технология, използвана за съхраняване на Java обекти в бази данни, която осигурява удобство на разработчиците, като обработва всички подробности на нивото на внедряване и позволява на разработчиците да се фокусират върху кодиране, което не е специфично за базата данни. Но Обектът на стойност представлява абстрактен модел на проектиране (не технология), който осигурява общ носител на данни, известен като Обект за прехвърляне на данни, който може да съхранява данни с цел прехвърляне между клиент и бази данни. JDO предоставя възможност за постоянни елементи от данни, докато Value Object се занимава само с временно съхраняване на данни по време на периода на трансфер на данни. С други думи, Value Object не осигурява постоянство.