Diferença Entre JDO e Objeto de Valor

Anonim

JDO vs Object de Valor

JDO é uma tecnologia de persistência Java que pode ser usada para armazenar POJO (Plain Old Java Objects) em bases de dados sem a necessidade de entender as implementações subjacentes de diferentes armazenamentos de dados. Value Object (também conhecido como Data Transfer Object) é um padrão de design abstrato que introduz o conceito de um suporte de dados simples com a finalidade de transferir dados entre várias camadas e camadas.

O que é JDO?

JDO (Java Data Objects) fornece um mecanismo para fornecer persistência aos objetos Java e ao acesso ao banco de dados. O JDO é altamente transparente porque permite que os desenvolvedores de aplicativos Java acessem os dados subjacentes sem ter que escrever nenhum código específico para bancos de dados. O JDO pode ser usado em vários níveis, incluindo Java Standard Edition, Web-tier e servidores de aplicativos. A API JDO é uma alternativa para outros persistentes (mantendo objetos após o aborto do programa) de objetos Java como Serialização, JDBC (Java DataBase Connectivity) e EJB CMP (Enterprise JavaBeans Architecture Container Managed Persistence). O JDO usa XML e o aprimoramento do bytecode. A principal vantagem de usar a API JDO é que eles podem armazenar dados sem a necessidade de aprender uma nova linguagem de consulta, como SQL (que depende do tipo de armazenamento de dados). O JDO é muito fácil de usar, uma vez que os desenvolvedores podem se concentrar apenas no seu modelo de objeto de domínio. Não só isso, o JDO otimiza o código por si só de acordo com o acesso a dados. Como a API JDO não é rigorosa no tipo de armazenamento de dados, a mesma interface pode ser usada pelos desenvolvedores de aplicativos java para armazenar objetos java em qualquer armazenamento de dados, incluindo banco de dados relacional, banco de dados de objetos ou XML. O JDO é altamente portátil porque a modificação ou a recompilação não são necessárias para serem executadas em diferentes implementações de fornecedores.

O que é Value Object?

Objeto de valor também conhecido como Objetos de transferência de dados (DTO) é um padrão de design abstrato simples que lida com um contêiner de dados para armazenar dados com a finalidade de transferir dados entre camadas e camadas. Embora o termo mais preciso para este padrão seja o Objeto de Transferência de Dados, devido a um erro na primeira versão do Core J2EE, ele foi introduzido como Objeto de Valor. Embora este erro tenha sido corrigido na 2ª edição, esse nome tornou-se popular e ainda é usado muito em vez de Objeto de Transferência de Dados (mas deve-se notar que o termo correto é Objeto de Transferência de Dados). O padrão de design DTO é usado com beans de entidade, JDBC e JDO para corrigir problemas que ocorrem em relação ao isolamento e transações em aplicativos corporativos. É importante notar que estes são apenas titulares de dados simples usados ​​para transferir dados entre o cliente e o banco de dados e não fornecem persistência de qualquer tipo.O DTO serve para atuar como objetos Serializáveis ​​no EJB tradicional (como beans de entidade antes de 3. 0 não são serializáveis). Em uma fase de montagem separada definida pelo DTO, todos os dados usados ​​pela exibição são adquiridos e empacotados antes da liberação do controle para a camada de apresentação.

Qual a diferença entre JDO e Value Object?

O JDO é, na verdade, uma tecnologia de persistência usada para armazenar objetos Java em bancos de dados que proporcionam conveniência aos desenvolvedores, manipulando todos os detalhes do nível de implementação e permitindo que os desenvolvedores se concentrem em codificação não específica de banco de dados. Mas, o Objeto de Valor representa um padrão de design abstrato (não uma tecnologia) que fornece um suporte de dados genérico conhecido como um Objeto de Transferência de Dados que pode armazenar dados com a finalidade de transferir entre cliente e bancos de dados. O JDO fornece a facilidade de itens de dados persistentes, enquanto o Value Object trata apenas de manter os dados temporariamente durante o período de transferência de dados. Em outras palavras, Value Object não oferece persistência.