JDO vs. obiect de valoare
JDO este o tehnologie de persistență Java care poate fi utilizată pentru a stoca POJO (Obiecte Java vechi simple) în baze de date fără a fi nevoie să înțelegem implementările de bază ale diferitelor depozite de date. Value Object (cunoscut și ca Data Transfer Object) este un model de design abstract care introduce conceptul unui simplu deținător de date în scopul transferului de date între mai multe straturi și niveluri.
Ce este JDO?
JDO (Java Data Objects) oferă un mecanism pentru a oferi persistență obiectelor Java și accesului la baze de date. JDO este foarte transparent deoarece permite dezvoltatorilor de aplicații Java să acceseze datele de bază fără a fi nevoie să scrie vreun cod specific bazelor de date. JDO poate fi utilizat pe mai multe niveluri, inclusiv Java Standard Edition, Web-tier și servere de aplicații. JDO API este o alternativă la alte persistență (păstrarea obiectelor după avortul programului) a obiectelor Java precum Serialization, JDBC (Java DataBase Connectivity) și EJB CMP (Enterprise JavaBeans architecture Container Managed Persistence). JDO folosește XML și îmbunătățirea bytecode. Principalul avantaj al utilizării API-ului JDO este că pot stoca date fără a fi nevoie să învețe un nou limbaj de interogare, cum ar fi SQL (care depinde de tipul de stocare a datelor). JDO este foarte ușor de utilizat, deoarece dezvoltatorii se pot concentra doar pe modelul lor obiect de domeniu. Nu numai asta, JDO optimizează codul de la sine în funcție de accesul la date. Deoarece API-ul JDO nu este strict în ceea ce privește tipul de depozit de date, aceeași interfață poate fi folosită de dezvoltatorii de aplicații Java pentru a stoca obiecte java în orice depozit de date, inclusiv baze de date relaționale, baze de date de obiecte sau XML. JDO este foarte portabil, deoarece modificarea sau recompilarea nu este necesară pentru a rula pe implementări diferite de furnizori.
Ce este obiectul de valoare?
Value Object, cunoscut și sub numele de Data transfer Objects (DTO) este un model simplu de design abstract care se ocupă de un container de date pentru a păstra date în scopul transferului de date între straturi și niveluri. Deși termenul cel mai precis pentru acest model este Data Transfer Object, din cauza unei greșeli în prima versiune a Core J2EE a fost introdus ca Value Object. Deși această greșeală a fost corectată în ediția a 2-a, acest nume a devenit popular și este încă folosit intens în locul obiectului de transfer de date (dar trebuie menționat că termenul corect este obiect de transfer de date). Modelul de design DTO este utilizat cu entity beans, JDBC și JDO pentru a remedia problemele care apar în ceea ce privește izolarea și tranzacțiile în aplicațiile de întreprindere. Este important de reținut că aceștia sunt doar simple deținători de date utilizați pentru a transfera date între client și baza de date și nu oferă persistență de niciun fel. DTO servește scopului de a acționa ca obiecte serializabile în EJB tradițional (ca entity beans înainte de 3.0 nu sunt serializabile). Într-o fază de asamblare separată definită de DTO, toate datele utilizate de vizualizare sunt achiziționate și grupate înainte de lansarea controlului în stratul de prezentare.
Care este diferența dintre JDO și Value Object?
JDO este de fapt o tehnologie de persistență folosită pentru a stoca obiecte Java în baze de date, care oferă confort dezvoltatorilor prin gestionarea tuturor detaliilor nivelului de implementare și permițând dezvoltatorilor să se concentreze pe codificarea non-specifică a bazei de date. Dar, obiectul valoare reprezintă un model de design abstract (nu o tehnologie) care oferă un deținător de date generic cunoscut sub numele de obiect de transfer de date, care poate deține date în scopul transferului între client și baze de date. JDO oferă posibilitatea de a persista elemente de date, în timp ce Value Object se ocupă doar de păstrarea temporară a datelor în timpul perioadei de transfer de date. Cu alte cuvinte, Value Object nu oferă persistență.