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, som introducerer konceptet med en simpel dataholder med det formål at overføre data mellem flere lag og lag.
Hvad er JDO?
JDO (Java Data Objects) giver en mekanisme til at levere persistens til Java-objekter og databaseadgang. JDO er meget gennemsigtig, fordi den 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 persistens (holde objekter efter abort af 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 bytekode. 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 såsom SQL (som afhænger af typen af datalagring). JDO er meget nem at bruge, da udviklere kun kan fokusere på deres domæneobjektmodel. Ikke kun dette, JDO optimerer kode af sig selv i henhold til dataadgang. Fordi JDO API ikke er streng med hensyn til typen af datalager, kan den samme grænseflade bruges af java-applikationsudviklere til at gemme java-objekter til ethvert datalager, inklusive relationsdatabase, objektdatabase eller en XML. JDO er meget bærbar, fordi modifikation eller rekompilering ikke er nødvendig for at køre på forskellige leverandørimplementeringer.
Hvad er Value Object?
Value Object også kendt som Data Transfer Objects (DTO) er et simpelt abstrakt designmønster, der omhandler en databeholder til at opbevare data med det formål at overføre data mellem lag og lag. Selvom den mest nøjagtige betegnelse for dette mønster er Data Transfer Object, 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 bliver stadig brugt flittigt i stedet for Data Transfer Object (men det skal bemærkes, at det korrekte udtryk er Data Transfer Object). DTO-designmønster bruges med entity beans, JDBC og JDO til at rette op på problemer, der opstår med hensyn til isolation og transaktioner i virksomhedsapplikationer. Det er vigtigt at bemærke, at disse kun er simple dataholdere, der bruges til at overføre data mellem klienten og databasen, og at de ikke giver persistens af nogen art. DTO tjener det formål at fungere som serialiserbare objekter i traditionel EJB (som enhedsbønner før 3.0 kan ikke serialiseres). I en separat monteringsfase, defineret af DTO, indsamles og samles alle data, der bruges af visningen, før kontrollen frigives til præsentationslaget.
Hvad er forskellen mellem JDO og Value Object?
JDO er faktisk en persistensteknologi, der bruges til at gemme Java-objekter i databaser, hvilket giver bekvemmelighed for udviklerne ved at håndtere alle implementeringsniveaudetaljerne og give udviklerne mulighed for at 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 midlertidig opbevaring af data i dataoverførselsperioden. Med andre ord giver Value Object ikke vedholdenhed.