JDO vs Value Object
JDO нь POJO (Plain Old Java Objects)-ийг мэдээллийн санд хадгалахад ашиглаж болох Java-ийн тогтвортой технологи бөгөөд өөр өөр мэдээллийн сангуудын үндсэн хэрэгжилтийг ойлгох шаардлагагүй. Үнэт зүйлийн объект (Өгөгдөл дамжуулах объект гэж нэрлэдэг) нь олон давхарга болон түвшний хооронд өгөгдөл дамжуулах зорилгоор энгийн өгөгдөл эзэмшигчийн тухай ойлголтыг танилцуулсан хийсвэр дизайны загвар юм.
JDO гэж юу вэ?
JDO (Java Data Objects) нь Java объект болон өгөгдлийн сангийн хандалтыг тогтвортой байлгах механизмаар хангадаг. JDO нь өгөгдлийн сангийн тусгай код бичих шаардлагагүйгээр Java программ хөгжүүлэгчдэд үндсэн өгөгдөлд хандах боломжийг олгодог учраас маш ил тод байдаг. JDO-г Java стандарт хувилбар, вэб түвшний болон програмын сервер зэрэг хэд хэдэн түвшинд ашиглаж болно. JDO API нь Serialization, JDBC (Java DataBase Connectivity) болон EJB CMP (Enterprise JavaBeans архитектурын Container Managed Persistence) зэрэг Java объектуудын бусад тогтвортой байдлын (програмыг зогсоосны дараа объектуудыг хадгалах) өөр хувилбар юм. JDO нь XML болон байт кодын сайжруулалтыг ашигладаг. JDO API ашиглахын гол давуу тал нь SQL (өгөгдлийн хадгалалтын төрлөөс хамаарна) гэх мэт шинэ хайлтын хэл сурах шаардлагагүйгээр өгөгдөл хадгалах боломжтой юм. Хөгжүүлэгчид зөвхөн өөрсдийн домэйн объектын загварт анхаарлаа төвлөрүүлэх боломжтой тул JDO-г ашиглахад тун хялбар. Үүгээр зогсохгүй JDO кодыг өгөгдөлд хандах хандалтын дагуу өөрөө оновчтой болгодог. JDO API нь өгөгдлийн сангийн төрөлд хатуу ханддаггүй тул java програм хөгжүүлэгчид ижил интерфэйсийг ашиглан java объектыг харилцааны мэдээллийн сан, объектын өгөгдлийн сан эсвэл XML гэх мэт дурын мэдээллийн санд хадгалах боломжтой. JDO нь маш зөөврийн юм, учир нь өөр үйлдвэрлэгчийн хэрэгжүүлэлт дээр ажиллахын тулд өөрчлөх, дахин эмхэтгэх шаардлагагүй.
Үнэт зүйлийн объект гэж юу вэ?
Өгөгдөл дамжуулах объект (DTO) гэж нэрлэгддэг үнэ цэнийн объект нь давхаргууд болон түвшний хооронд өгөгдөл дамжуулах зорилгоор өгөгдөл хадгалах өгөгдлийн контейнертэй харьцдаг энгийн хийсвэр дизайны загвар юм. Хэдийгээр энэ загварын хамгийн зөв нэр томьёо нь Data Transfer Object боловч Core J2EE-ийн анхны хувилбарт алдаа гарсны улмаас үүнийг Value Object гэж танилцуулсан. Хэдийгээр энэ алдааг 2-р хэвлэлд зассан ч энэ нэр түгээмэл болж, Data Transfer Object-ын оронд маш их ашиглагддаг хэвээр байна (гэхдээ зөв нэр томъёо нь Data Transfer Object гэдгийг тэмдэглэх нь зүйтэй). DTO загварын загварыг аж ахуйн нэгжийн шош, JDBC болон JDO-д ашиглан аж ахуйн нэгжийн программ дахь тусгаарлалт, гүйлгээтэй холбоотой асуудлуудыг засахад ашигладаг. Эдгээр нь зөвхөн үйлчлүүлэгч болон мэдээллийн сангийн хооронд өгөгдөл дамжуулахад ашигладаг энгийн өгөгдөл эзэмшигчид бөгөөд тэдгээр нь ямар ч төрлийн тогтвортой байдлыг хангадаггүй гэдгийг анхаарах нь чухал юм. DTO нь уламжлалт EJB-д (3.0-ийг цуваа болгох боломжгүй). DTO-ийн тодорхойлсон тусдаа угсралтын үе шатанд харагдацын ашигласан бүх өгөгдлийг цуглуулж, хяналтыг үзүүлэнгийн давхарга руу гаргахаас өмнө нэгтгэдэг.
JDO болон Value Object хоёрын ялгаа юу вэ?
JDO нь үнэндээ Java объектуудыг өгөгдлийн санд хадгалахад ашигладаг тогтвортой технологи бөгөөд хэрэгжүүлэлтийн түвшний бүх нарийн ширийн зүйлийг боловсруулах замаар хөгжүүлэгчдэд тав тухтай байдлыг хангаж, хөгжүүлэгчдэд мэдээллийн санд хамаарахгүй кодчилол дээр анхаарлаа төвлөрүүлэх боломжийг олгодог. Гэхдээ үнэ цэнийн объект нь хийсвэр дизайны загварыг (технологи биш) төлөөлдөг бөгөөд энэ нь өгөгдөл дамжуулах объект гэж нэрлэгддэг ерөнхий өгөгдөл эзэмшигчийг хангадаг бөгөөд энэ нь үйлчлүүлэгч болон өгөгдлийн сангийн хооронд өгөгдөл дамжуулах зорилгоор өгөгдөл хадгалах боломжтой юм. JDO нь өгөгдлийн элементүүдийг хадгалах боломжийг олгодог бол Value Object нь зөвхөн өгөгдөл дамжуулах явцад өгөгдлийг түр зуур хадгалах асуудлыг шийддэг. Өөрөөр хэлбэл, Value Object тогтвортой байдлыг хангадаггүй.