Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — Instituto Legalle 2026
- Código
- gp045384
- Banca
- Instituto Legalle
- Órgão
- CIGA-SC
- Ano
- 2026
- Cargo
- Programador
- AObserver.
- BStrategy.
- CCommand.
- DSingleton.
- EDecorator.
GabaritoE — 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.
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.
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.
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.
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.
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.
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