Pular para o conteúdo principal

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

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fc019771
Banca
FCC
Órgão
DPE-SP
Ano
2015
Nível
Médio
Cargo
Programador
Um Programador está desenvolvendo uma aplicação em que os objetos mudam de estado com muita frequência. Em tempo de execução, a mudança no estado lógico destes objetos implica também na alteração em seu comportamento. Nessa aplicação é ideal que o Programador utilize um design pattern comportamental cuja classe Context é a interface principal para as requisições dos clientes. O Programador deve utilizar o design pattern
  1. APrototype
  2. BState.
  3. CAdapter.
  4. DSingleton.
  5. EFaçade.
Revelar gabarito e comentário

GabaritoB — State.

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

State Pattern — Comportamental para objetos que mudam de estado e comportamento

Gabarito: letra B (State). O padrão State é ideal quando um objeto precisa alterar seu comportamento conforme seu estado interno muda, e a classe Context é a interface principal para requisições dos clientes. A descrição do enunciado — "mudança no estado lógico implica alteração no comportamento" — é a definição literal do State pattern, conforme os padrões GoF.

A questão testa o conhecimento dos padrões de projeto GoF e sua classificação (criacional, estrutural, comportamental). O State é um padrão comportamental de objeto. As demais alternativas ou são de outras categorias ou não atendem ao requisito de comportamento variável por estado.

Alternativa A — ❌ Incorreta

Prototype é um padrão criacional que cria novos objetos clonando um protótipo existente. Não está relacionado a mudança de comportamento por estado.

Alternativa B — ✅ Correta ⟵ GABARITO

State é um padrão comportamental que permite que um objeto altere seu comportamento interno quando seu estado muda. O objeto parece mudar de classe. A classe Context delega o comportamento ao estado corrente. O enunciado casa exatamente com essa definição.

Alternativa C — ❌ Incorreta

Adapter é um padrão estrutural que converte interfaces incompatíveis para que classes possam trabalhar juntas. Não envolve estado ou comportamento dinâmico.

Alternativa D — ❌ Incorreta

Singleton é um padrão criacional que garante uma única instância de uma classe. Não trata de mudança de estado ou comportamento.

Alternativa E — ❌ Incorreta

Façade é um padrão estrutural que fornece uma interface simplificada para um subsistema complexo. Não lida com estados mutáveis.

NÃO CAIA NESSA!

Decore a classificação dos padrões GoF (criacionais, estruturais, comportamentais) e as frases-chave de cada um. State = "comportamento muda com o estado"; Strategy = "algoritmos intercambiáveis". Não confunda: ambos são comportamentais, mas State é dependente de estado interno, Strategy é independente.

Link permanente: /questoes/fc019771