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