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

O contexto apresentado trata de padrões de projeto de software, especificamente dos padrões comportamentais. O problema central identificado no enunciado é a dificuldade de manter um código que utiliza muitas estruturas condicionais para gerenciar diferentes situações de um ciclo de vida.

A solução descrita propõe o uso de polimorfismo para separar a lógica de cada estado em classes distintas. Isso elimina a necessidade de verificação constante de variáveis de estado dentro da classe principal, distribuindo a responsabilidade para os objetos de estado específicos.

Análise

  • Correspondência com o Padrão State: O texto menciona explicitamente "ciclo de vida composto por estados" e a separação do "processamento de cada parte" em classes à parte, que é a definição clássica do padrão State (Estado).
  • Substituição de Condicionais: Ao dizer que não se quer escrever "estruturas condicionais complexas", o enunciado aponta para a vantagem principal do padrão State: substituir if-else ou switch por delegação a subclasses.
  • Comportamento Dinâmico: A frase "classe X apenas guarda a referência para a situação corrente" descreve o objeto Contexto, que mantém uma referência ao objeto Estado atual e delega as requisições para ele.
  • Descarte das Outras Opções: Padrões como Command focam em encapsular ações, Mediator em comunicação entre objetos, e Memento em salvar/restaurar estado, nenhum deles resolve a questão de alterar o comportamento da classe baseada no estado interno através de delegação direta.

Essa abordagem segue o princípio de design que diz que um objeto deve ter um único motivo para mudar, evitando que a classe principal se torne um "objeto Deus" cheio de regras condicionais.

Portanto, o padrão descrito é o State.

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