Differenza tra JDO e oggetto valore

JDO vs Oggetto valore

JDO è una tecnologia di persistenza Java che può essere utilizzata per archiviare POJO (Plain Old Java Objects) nei database senza la necessità di comprendere le implementazioni sottostanti di diversi archivi di dati. Value Object (noto anche come Data Transfer Object) è un modello di disegno astratto che introduce il concetto di un semplice titolare di dati allo scopo di trasferire dati tra più livelli e livelli.

Cos'è JDO?

JDO (Java Data Objects) fornisce un meccanismo per fornire persistenza agli oggetti Java e all'accesso al database. JDO è altamente trasparente perché consente agli sviluppatori di applicazioni Java di accedere ai dati sottostanti senza dover scrivere alcun codice specifico per i database. JDO può essere utilizzato su più livelli, tra cui Java Standard Edition, server Web e server applicazioni. L'API JDO è un'alternativa ad altre persistenza (mantenendo gli oggetti dopo l'aborto del programma) di oggetti Java come Serialization, JDBC (Java DataBase Connectivity) ed EJB CMP (Enterprise JavaBeans Architecture Container Managed Persistence). JDO utilizza XML e migliora il bytecode. Il vantaggio principale dell'utilizzo dell'API JDO è che possono memorizzare dati senza la necessità di apprendere un nuovo linguaggio di query come SQL (che dipende dal tipo di archiviazione dei dati). JDO è molto facile da usare poiché gli sviluppatori possono concentrarsi solo sul loro modello di oggetti di dominio. Non solo, JDO ottimizza il codice da solo in base all'accesso ai dati. Poiché l'API JDO non è rigida sul tipo di archivio dati, la stessa interfaccia può essere utilizzata dagli sviluppatori di applicazioni Java per archiviare oggetti java in qualsiasi archivio dati, inclusi database relazionale, database oggetto o XML. JDO è altamente portatile perché la modifica o la ricompilazione non è necessaria per l'esecuzione su diverse implementazioni del fornitore.

Cos'è l'oggetto valore?

L'oggetto Value noto anche come DTO (Data Transfer Objects) è un modello di disegno astratto semplice che si occupa di un contenitore di dati per contenere i dati allo scopo di trasferire i dati tra livelli e livelli. Sebbene il termine più accurato per questo modello sia l'oggetto Data Transfer, a causa di un errore nella prima versione del Core J2EE è stato introdotto come oggetto valore. Anche se questo errore è stato corretto nella 2a edizione, questo nome è diventato popolare e viene ancora utilizzato pesantemente anziché Data Transfer Object (ma è necessario notare che il termine corretto è Data Transfer Object). Lo schema di progettazione DTO viene utilizzato con bean di entità, JDBC e JDO per correggere i problemi relativi all'isolamento e alle transazioni nelle applicazioni aziendali. È importante notare che si tratta di semplici titolari di dati utilizzati per trasferire dati tra il client e il database e che non forniscono alcuna persistenza di alcun tipo. DTO ha lo scopo di agire come oggetti serializzabili nel bean EJB tradizionale (poiché i bean di entità prima della 3.0 non sono serializzabili). In una fase di assemblaggio separata definita da DTO, tutti i dati utilizzati dalla vista vengono acquisiti e sottoposti a marshalling prima del rilascio del controllo sul livello di presentazione.

Qual è la differenza tra JDO e Value Object?

JDO è in realtà una tecnologia di persistenza utilizzata per archiviare oggetti Java in database che offre praticità agli sviluppatori gestendo tutti i dettagli del livello di implementazione e consentendo agli sviluppatori di concentrarsi su una codifica non specifica del database. Ma, l'Oggetto Valore rappresenta un modello di disegno astratto (non una tecnologia) che fornisce un titolare di dati generico noto come oggetto di trasferimento dati che può contenere dati allo scopo di trasferire tra client e database. JDO fornisce la funzionalità di elementi di dati persistenti, mentre Value Object si occupa solo di mantenere temporaneamente i dati durante il periodo di trasferimento dei dati. In altre parole, Value Object non fornisce persistenza.