Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — CESGRANRIO 2024
- Código
- cg022820
- Banca
- CESGRANRIO
- Órgão
- UNEMAT
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista de Sistemas
- AVisitor
- BFaçade
- CSingleton
- DComposite
- EFactory Method
GabaritoD — Composite
Gabarito: letra D. O padrão Composite é o padrão estrutural indicado para representar estruturas hierárquicas em árvore, pois permite tratar objetos individuais e composições de objetos de maneira uniforme. É exatamente o que a demanda de codificar uma árvore exige.
A banca testa o conhecimento dos padrões GoF e sua classificação. O enunciado pede um padrão estrutural que ajude a implementar uma estrutura de árvore. O Composite é o único que se encaixa perfeitamente.
Padrão | Classificação (GoF) | Função Principal | Resolve o problema de árvore? |
|---|---|---|---|
Visitor | Comportamental | Separar algoritmo da estrutura de objetos | ❌ Não |
Façade | Estrutural | Fornecer interface simplificada para subsistema | ❌ Não |
Singleton | Criacional | Garantir uma única instância de classe | ❌ Não |
Composite | Estrutural | Compor objetos em estruturas de árvore (hierarquia parte-todo) | ✅ Sim |
Factory Method | Criacional | Definir interface para criação de objetos | ❌ Não |
Visitor é um padrão comportamental, usado para separar um algoritmo da estrutura de objetos sobre a qual ele opera. Não resolve o problema de construir uma árvore.
Façade é um padrão estrutural, mas sua função é fornecer uma interface simplificada para um subsistema complexo, não modelar hierarquias em árvore.
Singleton é um padrão criacional que garante uma única instância de uma classe. Nada tem a ver com estruturas de árvore.
Composite é um padrão estrutural que compõe objetos em estruturas de árvore para representar hierarquias parte-todo. Permite que clientes tratem objetos individuais e composições de forma uniforme, sendo a solução clássica para implementar árvores.
Factory Method é um padrão criacional que define uma interface para criar objetos, mas deixa as subclasses decidirem qual classe instanciar. Não se aplica à construção de árvores.
Gabarito: letra D.
Link permanente: /questoes/cg022820