Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Patterns of Enterprise Application Architecture

18.6. Value Object

Objeto pequeno, comparado pelo valor, imutável.

Duas notas de dinheiro iguais são iguais; dois clientes com mesmo nome são diferentes pela identidade
Valor: igualdade por conteúdo. Entidade: igualdade por identidade.

Resumo

Perguntas-chave

responda de cabeça, depois abra
Por que Value Objects devem ser imutáveis?
Para evitar aliasing: se dois objetos compartilham o mesmo valor, mudar um não pode afetar o outro.
Como se compara dois Value Objects?
Pelo conteúdo dos campos (equals baseado em valor).
Como persistir um Value Object?
Normalmente com Embedded Value nas colunas do dono.

Exercícios de fixação

0/5 respondidas
1.
new Dinheiro(10, "BRL").equals(new Dinheiro(10, "BRL")) retorna true. Que tipo de objeto é Dinheiro?
2.
Dois pedidos compartilham o mesmo objeto Data. Um deles muda o dia com data.setDia(5) e o outro pedido também muda. Qual o erro?
3.
Qual a forma usual de mapear um Value Object no banco?
4.
Qual a diferença central entre entidade e Value Object?
5.
Na comunidade J2EE antiga, 'Value Object' era usado com outro sentido. Qual?
Seu progresso fica salvo neste navegador.