JDO vs Value Object
JDO er en Java persistence-teknologi, der kan bruges til at gemme POJO (Plain Old Java Objects) i databaser uden behov for at forstå de underliggende implementeringer af forskellige datalagre. Value Object (også kendt som Data Transfer Object) er et abstrakt designmønster, der introducerer konceptet med en simpel dataholder med det formål at overføre data mellem flere lag og niveauer.
Hvad er JDO?
JDO (Java Data Objects) giver en mekanisme til at levere persistens til Java-objekter og databaseadgang. JDO er meget gennemsigtig, fordi det giver Java-applikationsudviklere adgang til de underliggende data uden at skulle skrive nogen kode, der er specifik for databaser. JDO kan bruges på tværs af flere niveauer, herunder Java Standard Edition, Web-tier og applikationsservere. JDO API er et alternativ til anden vedholdenhed (opbevaring af objekter efter abort i programmet) af Java-objekter såsom Serialization, JDBC (Java DataBase Connectivity) og EJB CMP (Enterprise JavaBeans architecture Container Managed Persistence). JDO bruger XML og forbedring af bytecode. Den største fordel ved at bruge JDO API er, at de kan gemme data uden behov for at lære et nyt forespørgselssprog som SQL (hvilket afhænger af typen af datalagring). JDO er meget let at bruge, da udviklere kun kan fokusere på deres domæneobjektmodel. Ikke kun dette, JDO optimerer koden i sig selv i henhold til dataadgang. Da JDO API ikke er streng med hensyn til datalageret, kan den samme grænseflade bruges af Java-applikationsudviklerne til at gemme Java-objekter til ethvert datalager inklusive relationsdatabase, objektdatabase eller en XML. JDO er meget bærbar, fordi ændring eller rekompilering ikke er nødvendig for at køre på forskellige leverandørimplementeringer. JDO er meget bærbar, fordi ændring eller rekompilering ikke er nødvendig for at køre på forskellige leverandørimplementeringer. JDO er yderst bærbar, fordi ændring eller rekompilering ikke er nødvendig for at køre på forskellige leverandørimplementeringer.
Hvad er værdiobjekt?
Værdiobjekt, også kendt som dataoverførselsobjekter (DTO), er et simpelt abstrakt designmønster, der beskæftiger sig med en datacontainer til at indeholde data med det formål at overføre data mellem lag og lag. Selvom den mest nøjagtige betegnelse for dette mønster er dataoverførselsobjektet, blev det på grund af en fejl i Core J2EEs første version introduceret som Value Object. Selvom denne fejl blev rettet i 2. udgave, blev dette navn populært og bruges stadig stærkt i stedet for Data Transfer Object (men det skal bemærkes, at det korrekte udtryk er Data Transfer Object). DTO-designmønster bruges med enhedsbønner, JDBC og JDO til at rette op på problemer, der opstår med hensyn til isolering og transaktioner i virksomhedsapplikationer. Det er vigtigt at bemærke, at dette kun er enkle dataholdere, der bruges til at overføre data mellem klienten og databasen, og de giver ikke nogen form for vedholdenhed. DTO tjener formålet med at fungere som Serialiserbare objekter i traditionel EJB (som enhedsbønner før 3.0 ikke kan serienummeres). I en separat samlingsfase, der er defineret af DTO, er alle data, der bruges af visningen, erhvervet og marskaleret før frigivelsen af kontrollen til præsentationslaget.
Hvad er forskellen mellem JDO og Value Object?
JDO er faktisk en vedholdenhedsteknologi, der bruges til at lagre Java-objekter i databaser, hvilket giver udviklerne bekvemmelighed ved at håndtere alle detaljer på implementeringsniveauet og lade udviklerne fokusere på ikke-databasespecifik kodning. Men værdiobjektet repræsenterer et abstrakt designmønster (ikke en teknologi), der giver en generisk dataholder kendt som et dataoverførselsobjekt, som kan indeholde data med det formål at overføre mellem klient og databaser. JDO giver mulighed for vedvarende dataelementer, mens Value Object kun beskæftiger sig med at opbevare data midlertidigt i perioden for dataoverførsel. Med andre ord giver Value Object ikke vedholdenhed.