Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2024
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
fg077000
Banca
FGV
Órgão
CGE-PB
Ano
2024
Nível
Superior
Cargo
Auditor de Contas Públicas - Auditoria de Tecnologia da Informação
A analista Débora está implementando o sistema CGEOnline de acordo com o Domain Driven Design (DDD). Débora criou em CGEOnline a classe de modelo de domínio Acoes, sem atributos que identifiquem unicamente determinada instância da classe. As instâncias de Acoes são caracterizadas apenas pelo estado da instância.A classe Acoes, criada por Débora, aplica o conceito do DDD:
Aserviço;
Bentidade;
Cagregado;
Drepositório;
Eobjeto de valor.
Revelar gabarito e comentário▾
GabaritoE — objeto de valor.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Domain-Driven Design: Objeto de Valor vs. Entidade
Gabarito: letra E. A classe Acoes não possui atributos que identifiquem unicamente uma instância, sendo caracterizada apenas pelo seu estado. Essa é a definição clássica de um objeto de valor no Domain-Driven Design (DDD). Objetos de valor não possuem identidade própria, ao contrário das entidades.
A questão exige o conhecimento dos conceitos fundamentais do DDD, conforme descrito por Eric Evans. A chave está em perceber que a ausência de um identificador único (como um ID) e a dependência exclusiva do estado para caracterizar a instância apontam diretamente para o conceito de Value Object.
DDD: Elementos do modelo: Objeto de valor (Sem identidade única, Definido pelo estado, Instâncias iguais se atributos iguais); Entidade (Possui identidade única, Distinta mesmo com mesmos atributos); Serviço (Operações/processos, Stateless); Agregado (Cluster de objetos, Raiz (entidade)); Repositório (Persistência/recuperação, Infraestrutura)
Alternativa A — ❌ Incorreta
Serviços, no DDD, representam operações ou processos que não pertencem naturalmente a uma entidade ou objeto de valor. Eles são stateless e encapsulam lógica de negócio. A classe Acoes é um modelo de domínio que guarda estado, não um serviço.
Alternativa B — ❌ Incorreta
Entidades possuem uma identidade única que as distingue de outras instâncias mesmo que todos os seus atributos sejam iguais. Como Acoes não tem atributos de identificação única, não pode ser uma entidade.
Alternativa C — ❌ Incorreta
Agregado é um cluster de objetos de domínio (entidades e objetos de valor) que são tratados como uma unidade coesa, com uma entidade raiz. A classe Acoes sozinha não define um agregado.
Alternativa D — ❌ Incorreta
Repositórios são mecanismos para recuperar e persistir agregados, abstraindo o armazenamento. Não são modelos de domínio, mas sim infraestrutura.
Alternativa E — ✅ Correta ⟵ GABARITO
Objeto de valor (Value Object) é imutável ou tem seu estado imutável após a criação, não possui identidade e é definido pelos valores de seus atributos. Exatamente o que a classe Acoes representa: instâncias distinguidas apenas pelo estado.
PEGA ESSA DICA!
No DDD, a pergunta decisiva é: "duas instâncias com os mesmos atributos são consideradas iguais?" Se sim, é objeto de valor; se cada uma tem identidade mesmo com mesmos dados, é entidade. Exemplos clássicos: Endereco (objeto de valor, pois dois endereços iguais são o mesmo), Pessoa (entidade, cada pessoa é única).