JDO ընդդեմ արժեքի օբյեկտ
JDO-ն Java-ի կայունության տեխնոլոգիա է, որը կարող է օգտագործվել POJO-ն (Պարզ հին Java օբյեկտները) տվյալների բազաներում պահելու համար՝ առանց տարբեր տվյալների պահեստների հիմքում ընկած իրականացումները հասկանալու անհրաժեշտության: Արժեքի օբյեկտը (նաև հայտնի է որպես Տվյալների փոխանցման օբյեկտ) վերացական դիզայնի օրինաչափություն է, որը ներկայացնում է պարզ տվյալների տնօրինողի հայեցակարգը` տվյալների փոխանցման համար բազմաթիվ շերտերի և շերտերի միջև:
Ի՞նչ է JDO?
JDO (Java Data Objects) ապահովում է Java-ի օբյեկտներին կայունություն ապահովելու մեխանիզմ և տվյալների բազայի հասանելիություն: JDO-ն շատ թափանցիկ է, քանի որ այն թույլ է տալիս Java հավելվածների մշակողներին մուտք գործել հիմքում ընկած տվյալները՝ առանց տվյալների բազաներին հատուկ կոդ գրելու:JDO-ն կարող է օգտագործվել մի քանի մակարդակներում, ներառյալ Java Standard Edition, Web-tier և կիրառական սերվերներ: JDO API-ն այլընտրանք է Java օբյեկտների այլ կայունության (օբյեկտների պահպանում ծրագրի ընդհատումից հետո), ինչպիսիք են Serialization, 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-ն շատ շարժական է, քանի որ փոփոխման կամ վերակոմպիլյացիայի կարիք չկա տարբեր վաճառողների ներդրման վրա գործարկելու համար:
Ի՞նչ է արժեքային օբյեկտը:
Value Object-ը, որը նաև հայտնի է որպես Տվյալների փոխանցման օբյեկտներ (DTO) պարզ վերացական դիզայնի օրինաչափություն է, որը վերաբերում է տվյալների կոնտեյների հետ՝ տվյալներ պահելու համար՝ շերտերի և շերտերի միջև տվյալների փոխանցման նպատակով: Չնայած այս օրինաչափության համար ամենաճշգրիտ տերմինը Տվյալների փոխանցման օբյեկտն է, Core J2EE-ի առաջին տարբերակի սխալի պատճառով այն ներկայացվել է որպես արժեքի օբյեկտ: Թեև այս սխալն ուղղվել է 2-րդ հրատարակության մեջ, այս անունը հայտնի դարձավ և դեռ շատ է օգտագործվում Data Transfer Object-ի փոխարեն (սակայն պետք է նշել, որ ճիշտ տերմինը Data Transfer Object է): DTO նախագծման օրինաչափությունն օգտագործվում է entity beans-ի, JDBC-ի և JDO-ի հետ՝ ձեռնարկության ծրագրերում մեկուսացման և գործարքների հետ կապված խնդիրները շտկելու համար: Կարևոր է նշել, որ դրանք միայն պարզ տվյալների կրողներ են, որոնք օգտագործվում են հաճախորդի և տվյալների բազայի միջև տվյալների փոխանցման համար, և նրանք չեն ապահովում որևէ տեսակի կայունություն: DTO-ն ծառայում է ավանդական EJB-ում որպես Serializable օբյեկտներ գործելու նպատակին (որպես entity beans մինչև 3.0-ը սերիականացման ենթակա չէ): DTO-ի կողմից սահմանված առանձին հավաքման փուլում, դիտման կողմից օգտագործվող բոլոր տվյալները ձեռք են բերվում և տեղադրվում են մինչև կառավարումը ներկայացման շերտի թողարկումը:
Ո՞րն է տարբերությունը JDO-ի և Value Object-ի միջև:
JDO-ն իրականում կայուն տեխնոլոգիա է, որն օգտագործվում է Java-ի օբյեկտները տվյալների շտեմարաններում պահելու համար, որը հարմարություն է ապահովում մշակողներին՝ մշակելով իրականացման մակարդակի բոլոր մանրամասները և թույլ տալով ծրագրավորողներին կենտրոնանալ տվյալների բազայի ոչ հատուկ կոդավորման վրա: Սակայն արժեքի օբյեկտը ներկայացնում է վերացական դիզայնի օրինաչափություն (ոչ տեխնոլոգիա), որն ապահովում է ընդհանուր տվյալների կրող, որը հայտնի է որպես Տվյալների փոխանցման օբյեկտ, որը կարող է տվյալներ պահել հաճախորդի և տվյալների բազաների միջև փոխանցելու նպատակով: JDO-ն ապահովում է մշտական տվյալների տարրերը, մինչդեռ Value Object-ը զբաղվում է միայն տվյալների փոխանցման ժամանակահատվածում տվյալների ժամանակավոր պահպանման հետ: Այլ կերպ ասած, Value Object-ը կայունություն չի ապահովում: