JDO vs Value Object
Ang JDO ay isang Java persistence technology na magagamit para mag-imbak ng POJO (Plain Old Java Objects) sa mga database nang hindi kailangang maunawaan ang mga pinagbabatayan na pagpapatupad ng iba't ibang data store. Ang Value Object (kilala rin bilang Data Transfer Object) ay isang abstract na pattern ng disenyo na nagpapakilala sa konsepto ng isang simpleng data holder para sa layunin ng paglilipat ng data sa pagitan ng maraming layer at tier.
Ano ang JDO?
Ang JDO (Java Data Objects) ay nagbibigay ng mekanismo para makapaghatid ng pagtitiyaga sa mga Java object at access sa database. Napakalinaw ng JDO dahil pinapayagan nito ang mga developer ng Java application na ma-access ang pinagbabatayan ng data nang hindi kinakailangang sumulat ng anumang code na partikular sa mga database. Maaaring gamitin ang JDO sa ilang tier kabilang ang Java Standard Edition, Web-tier at mga server ng application. Ang JDO API ay isang alternatibo sa iba pang pagtitiyaga (pagpapanatili ng mga bagay pagkatapos ng pagpapalaglag ng programa) ng mga Java object tulad ng Serialization, JDBC (Java DataBase Connectivity) at EJB CMP (Enterprise JavaBeans architecture Container Managed Persistence). Gumagamit ang JDO ng XML at pagpapahusay ng bytecode. Ang pangunahing bentahe ng paggamit ng JDO API ay maaari silang mag-imbak ng data nang hindi nangangailangan ng pag-aaral ng bagong wika ng query tulad ng SQL (na depende sa uri ng pag-iimbak ng data). Napakadaling gamitin ng JDO dahil makakatuon lang ang mga developer sa kanilang modelo ng object ng domain. Hindi lamang ito, ang JDO ay nag-o-optimize ng code nang mag-isa ayon sa pag-access ng data. Dahil hindi mahigpit ang JDO API sa uri ng data store, ang parehong interface ay maaaring gamitin ng mga developer ng java application para mag-imbak ng mga object ng java sa anumang data store kabilang ang relational database, object database o XML. Lubos na portable ang JDO dahil hindi kailangan ang pagbabago o recompilation para tumakbo sa iba't ibang pagpapatupad ng vendor.
Ano ang Value Object?
Ang Value Object na kilala rin bilang Data transfer Objects (DTO) ay isang simpleng abstract na pattern ng disenyo na tumutugon sa isang lalagyan ng data upang maghawak ng data para sa layunin ng paglilipat ng data sa pagitan ng mga layer at tier. Bagama't ang pinakatumpak na termino para sa pattern na ito ay ang Data Transfer Object, dahil sa isang pagkakamali sa unang bersyon ng Core J2EE ay ipinakilala ito bilang Value Object. Bagama't ang pagkakamaling ito ay naitama sa ika-2 edisyon, naging tanyag ang pangalang ito at ginagamit pa rin ito sa halip na Data Transfer Object (ngunit dapat tandaan na ang tamang termino ay Data Transfer Object). Ang pattern ng disenyo ng DTO ay ginagamit kasama ng mga entity beans, JDBC at JDO upang itama ang mga problemang nagaganap patungkol sa paghihiwalay at mga transaksyon sa mga aplikasyon ng enterprise. Mahalagang tandaan na ang mga ito ay simpleng mga may hawak ng data lamang na ginagamit upang maglipat ng data sa pagitan ng kliyente at ng database at hindi sila nagbibigay ng anumang uri ng pagtitiyaga. Ang DTO ay nagsisilbi sa layunin ng pagkilos bilang mga Serializable na bagay sa tradisyonal na EJB (bilang entity beans bago ang 3.0 ay hindi serializable). Sa isang hiwalay na yugto ng pagpupulong na tinukoy ng DTO, ang lahat ng data na ginamit ng view ay nakuha at pinagsama-sama bago ilabas ang kontrol sa layer ng pagtatanghal.
Ano ang pagkakaiba ng JDO at Value Object?
Ang JDO ay talagang isang persistence na teknolohiya na ginagamit upang mag-imbak ng mga object ng Java sa mga database na nagbibigay ng kaginhawahan sa mga developer sa pamamagitan ng paghawak sa lahat ng mga detalye sa antas ng pagpapatupad at pagpapahintulot sa mga developer na tumuon sa hindi partikular na database na coding. Ngunit, ang Value Object ay kumakatawan sa isang abstract na pattern ng disenyo (hindi isang teknolohiya) na nagbibigay ng generic na data holder na kilala bilang isang Data Transfer Object na maaaring maglaman ng data para sa layunin ng paglilipat sa pagitan ng kliyente at mga database. Ang JDO ay nagbibigay ng pasilidad ng patuloy na mga item ng data, habang ang Value Object ay tumatalakay lamang sa pagpapanatili ng data pansamantala sa panahon ng paglilipat ng data. Sa madaling salita, ang Value Object ay hindi nagbibigay ng pagtitiyaga.