Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2020
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
fc058954
Banca
FCC
Órgão
AL-AP
Ano
2020
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
Sobre a lista de design patterns no padrão GoF, é correto afirmar:
ADecorator é um padrão comportamental que categoriza um objeto para fornecer novos comportamentos.
BVisitor é um padrão comportamental que encapsula uma solicitação como um objeto.
CAbstract Factory é um padrão estrutural que permite criar novas instâncias simplesmente copiando instâncias existentes.
DIterator é um padrão comportamental que fornece uma maneira de acessar sequencialmente uma coleção de objetos sem expor a sua implementação.
EState é um padrão criacional que centraliza operações complexas de comunicação e controle entre objetos relacionados.
Revelar gabarito e comentário▾
GabaritoD — Iterator é um padrão comportamental que fornece uma maneira de acessar sequencialmente uma coleção de objetos sem expor a sua implementação.
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”.
Design Patterns GoF
Gabarito: letra D. O Iterator é um padrão comportamental que fornece uma maneira de acessar sequencialmente os elementos de uma coleção sem expor sua implementação subjacente. As demais alternativas contêm erros de classificação ou definição, trocando categorias (criacional/estrutural/comportamental) ou confundindo com outros padrões.
A banca testa o conhecimento da classificação dos padrões GoF (Gang of Four) e suas definições. Os padrões se dividem em três categorias: criacionais, estruturais e comportamentais. A tabela abaixo resume as características dos padrões mencionados nas alternativas:
Padrão
Categoria Correta
Definição Correta
Decorator
Estrutural
Adiciona responsabilidades a um objeto dinamicamente
Visitor
Comportamental
Permite definir novas operações sem alterar as classes dos elementos
Abstract Factory
Criacional
Fornece uma interface para criar famílias de objetos relacionados
Iterator
Comportamental
Acessa sequencialmente elementos de uma coleção sem expor sua representação
State
Comportamental
Permite que um objeto altere seu comportamento quando seu estado interno muda
Agora analisamos cada alternativa:
Padrões GoF
1Criacionais
Abstract Factory (famílias de objetos)
Prototype (cópia de instâncias)
2Estruturais
Decorator (adiciona responsabilidades)
3Comportamentais
Iterator (acesso sequencial)
Visitor (novas operações)
State (comportamento por estado)
Command (solicitação como objeto)
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Decorator é um padrão estrutural, não comportamental. Sua finalidade é adicionar responsabilidades a um objeto de forma dinâmica, não "categorizar" um objeto para fornecer novos comportamentos.
Alternativa B — ❌ Incorreta
Visitor é comportamental, mas sua definição não é "encapsular uma solicitação como um objeto". Essa é a definição do padrão Command. O Visitor permite adicionar novas operações a uma hierarquia de classes sem modificá-las.
Alternativa C — ❌ Incorreta
Abstract Factory é um padrão criacional, não estrutural. A descrição "criar novas instâncias copiando instâncias existentes" corresponde ao padrão Prototype.
Alternativa D — ✅ Correta ⟵ GABARITO
Iterator é padrão comportamental. Sua definição está correta: fornece um meio de percorrer uma coleção sem expor sua estrutura interna (como listas, pilhas, árvores). É um dos padrões mais conhecidos.
Alternativa E — ❌ Incorreta
State é padrão comportamental, não criacional. "Centralizar operações complexas de comunicação e controle entre objetos relacionados" é função do padrão Mediator. O State gerencia comportamentos dependentes de estado.
NÃO CAIA NESSA!
A banca mistura propositalmente as categorias (criacional/estrutural/comportamental) e as definições típicas de outros padrões. Por exemplo: confundir Decorator como comportamental, Abstract Factory como estrutural, State como criacional. Além disso, troca as descrições: Visitor pelo Command, Abstract Factory pelo Prototype e State pelo Mediator. O segredo é decorar a categoria de cada padrão e sua definição específica.