Engenharia Múltipla Escolha

Você está desenvolvendo um módulo correspondente a uma classe X que possui um ciclo de vida composto por estados e não quer reescrever o código dessa classe utilizando estruturas condicionais complexas. Para isso, você separa o processamento de cada parte desse ciclo de vida em uma classe à parte. A classe X apenas guarda a referência para a situação corrente e repassa as requisições para o objeto correspondente a essa situação corrente. Assinale o padrão a que esse texto se refere:

Você está desenvolvendo um módulo correspondente a uma classe X que possui um ciclo de vida composto por estados e não quer reescrever o código dessa classe utilizando estruturas condicionais complexas. Para isso, você separa o processamento de cada parte desse ciclo de vida em uma classe à parte. A classe X apenas guarda a referência para a situação corrente e repassa as requisições para o objeto correspondente a essa situação corrente. Assinale o padrão a que esse texto se refere:

  1. Command
  2. State
  3. Mediator
  4. Memento
  5. Chain of Responsibility

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - State

O texto descreve exatamente o comportamento do padrão de projeto State (Estado). Este padrão é utilizado quando um objeto deve alterar seu comportamento quando seu estado interno mudar.

Análise Detalhada

A descrição da questão apresenta os três pilares fundamentais do padrão State:

  • Problema Resolvido: Evitar estruturas condicionais complexas (como grandes blocos if/else ou switch) para controlar o fluxo baseado no estado atual do objeto.
  • Solução Proposta: Separar o comportamento de cada estado em classes distintas. Cada classe representa um estado específico.
  • Mecanismo: A classe principal (chamada de Contexto) mantém uma referência ao estado atual e delega as requisições para esse objeto de estado, permitindo que o comportamento mude dinamicamente sem reescrever a lógica condicional.

Comparação com Outras Alternativas

PadrãoFunção PrincipalPor que não se encaixa?
CommandEncapsula uma solicitação como um objeto.Foca em operações/ações, não na mudança de comportamento baseada em estado.
MediatorFacilita comunicação entre vários objetos.Foca em desacoplar componentes, não no ciclo de vida de um único objeto.
MementoSalva o estado interno para restauração futura.Foca em histórico/backtracking, não na transição de estados operacionais.
Chain of ResponsibilityPassa requisições por uma cadeia de objetos.Foca em quem processa a ação, não no estado interno do objeto receptor.

Portanto, a alternativa que define o padrão onde a classe muda seu comportamento dependendo de seu estado interno é a B.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.