Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2024

Arquitetura de SoftwarePadrõ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:
  1. Aserviço;
  2. Bentidade;
  3. Cagregado;
  4. Drepositório;
  5. 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.

1Objeto de valor
Sem identidade única
Definido pelo estado
Instâncias iguais se atributos iguais
2Entidade
Possui identidade única
Distinta mesmo com mesmos atributos
3Serviço
Operações/processos
Stateless
4Agregado
Cluster de objetos
Raiz (entidade)
5Repositório
Persistência/recuperação
Infraestrutura
DDD: Elementos do modelo
LEVELsoulevel.com.br
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).

Gabarito: letra E.

Link permanente: /questoes/fg077000