Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — Instituto Legalle 2026

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
gp045384
Banca
Instituto Legalle
Órgão
CIGA-SC
Ano
2026
Cargo
Programador
Considere uma associação públicaresponsável pelo desenvolvimento de sistemas utilizadospor um consórcio de municípios. Em um módulo daaplicação, é necessário aplicar um padrāão de projetoestrutural, cujo objetivo é permitir a composição deobjetos de forma flexível, adicionando novasfuncionalidades a um objeto já existente sem modificarsua estrutura original, de maneira dinâmica durante a execução do sistema. Nesse contexto, qual padrão deprojeto atende à situação supracitada?
  1. AObserver.
  2. BStrategy.
  3. CCommand.
  4. DSingleton.
  5. EDecorator.
Revelar gabarito e comentário

GabaritoE — Decorator.

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”.

Padrões de projeto GoF: Decorator

Gabarito: letra E — Decorator. O padrão Decorator é um padrão estrutural que permite adicionar responsabilidades a um objeto de forma dinâmica, sem alterar sua estrutura original, por meio da composição. A descrição do enunciado — "composição flexível, adicionar funcionalidades a um objeto existente sem modificar sua estrutura, de maneira dinâmica" — é a definição exata do Decorator (GoF).

Os padrões de projeto GoF dividem-se em três categorias: criacionais, estruturais e comportamentais. O Decorator é um padrão estrutural, que lida com a composição de classes e objetos para formar estruturas maiores. A flexibilidade da composição em tempo de execução é uma característica central dos padrões estruturais de objeto, como o Decorator.

Alternativa A — ❌ Incorreta

Observer é um padrão comportamental que define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos os seus dependentes são notificados. Não é usado para adicionar funcionalidades a objetos de forma dinâmica.

Alternativa B — ❌ Incorreta

Strategy é um padrão comportamental que permite definir uma família de algoritmos, encapsulá-los e torná-los intercambiáveis. Ele altera o comportamento de um objeto, mas não adiciona novas responsabilidades de forma dinâmica a partir de um objeto-base.

Alternativa C — ❌ Incorreta

Command é um padrão comportamental que encapsula uma solicitação como um objeto, permitindo parametrizar clientes com filas, requisições e operações. Não se relaciona com a extensão dinâmica da funcionalidade de um objeto.

Alternativa D — ❌ Incorreta

Singleton é um padrão criacional que garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela. Não tem relação com a composição ou adição de funcionalidades.

Alternativa E — ✅ Correta ⟵ GABARITO

Decorator é um padrão estrutural que permite anexar responsabilidades adicionais a um objeto dinamicamente, fornecendo uma alternativa flexível ao uso de herança para extensão de funcionalidades. Ele envolve o objeto em uma série de classes "decoradoras" que implementam a mesma interface e delegam chamadas ao objeto original, acrescentando comportamento antes ou depois. O enunciado descreve exatamente essa situação.

PEGA ESSA DICA!

Para identificar o padrão correto, foque na palavra-chave do enunciado: "adicionar funcionalidades a um objeto já existente sem modificar sua estrutura original, de maneira dinâmica”. Isso é a essência do Decorator. Outros padrões alteram comportamento (Strategy, Observer) ou criam objetos (Singleton), mas não encaixam nessa descrição. Em provas de design patterns, sempre leia o objetivo principal do padrão antes de julgar.

Gabarito: letra E — Decorator.

Link permanente: /questoes/gp045384