Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2020

Arquitetura de SoftwarePadrõ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:
  1. ADecorator é um padrão comportamental que categoriza um objeto para fornecer novos comportamentos.
  2. BVisitor é um padrão comportamental que encapsula uma solicitação como um objeto.
  3. CAbstract Factory é um padrão estrutural que permite criar novas instâncias simplesmente copiando instâncias existentes.
  4. DIterator é um padrão comportamental que fornece uma maneira de acessar sequencialmente uma coleção de objetos sem expor a sua implementação.
  5. 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.

Gabarito: letra D.

Link permanente: /questoes/fc058954