Engenharia Múltipla Escolha

“Na implementação de um processo complexo, um módulo A chama operações de um módulo B e de um módulo C. B, por sua vez, chama operações de C e de D. O módulo C chama operações de A e de E. E chama operações dos módulos B e C”. Esse cenário ilustra uma interação entre objetos no estilo muitos para muitos. Para simplificar esse processo, define-se um objeto que centraliza todas as interações entre esses objetos, de modo que eles passam a se comunicar apenas com esse elemento central. Dessa forma, o elemento central X passa a receber notificações de A, para então chamar operações de B e C. Da mesma maneira, a partir de uma notificação enviada por B, X chama operações de C e de D. Essa descrição corresponde à estrutura de solução de qual padrão?

“Na implementação de um processo complexo, um módulo A chama operações de um módulo B e de um módulo C. B, por sua vez, chama operações de C e de D. O módulo C chama operações de A e de E. E chama operações dos módulos B e C”.

Esse cenário ilustra uma interação entre objetos no estilo muitos para muitos. Para simplificar esse processo, define-se um objeto que centraliza todas as interações entre esses objetos, de modo que eles passam a se comunicar apenas com esse elemento central. Dessa forma, o elemento central X passa a receber notificações de A, para então chamar operações de B e C. Da mesma maneira, a partir de uma notificação enviada por B, X chama operações de C e de D.

Essa descrição corresponde à estrutura de solução de qual padrão?

  1. Chain of Responsibility
  2. Strategy
  3. Visitor
  4. Template Method
  5. Mediator

Resolução completa

Explicação passo a passo

E
Alternativa E

Alternativa E - Mediator

Introdução

A questão apresenta um cenário clássico de design de software onde a comunicação direta entre múltiplos objetos gera complexidade excessiva. O problema descrito é conhecido como "acoplamento espaguete" ou "many-to-many", onde cada módulo precisa conhecer os outros diretamente.

A solução proposta no enunciado introduz uma camada de abstração: um objeto central que gerencia as comunicações.

Desenvolvimento

Para resolver o problema de interações complexas, o padrão de projeto identificado é o Mediator.

Este padrão tem como objetivo principal reduzir o acoplamento entre objetos. Em vez de cada objeto (como os módulos A, B, C e D) se referirem uns aos outros diretamente, eles enviam mensagens para um único objeto intermediário.

Características principais do cenário descrito:

  • Centralização: Existe um "elemento central X" que recebe notificações.
  • Desacoplamento: Os módulos não sabem uns dos outros; eles só conhecem o mediador.
  • Coordenação: O mediador decide qual operação deve ser chamada com base nas entradas recebidas.

Isso simplifica a lógica de controle e facilita a manutenção, pois alterações em um módulo não afetam necessariamente os outros, desde que a interface com o mediador permaneça estável.

Análise

Vamos verificar por que as outras alternativas não se encaixam nesta descrição específica:

PadrãoFunção PrincipalPor que não é a resposta
Chain of ResponsibilityEncadeia pedidos entre handlers até que um atenda.O foco é passar o pedido adiante, não centralizar a coordenação geral.
StrategyPermite trocar algoritmos dinamicamente.Foca no comportamento interno de um objeto, não na comunicação externa.
VisitorAdiciona novas operações a estruturas de dados.Foca em iterar sobre objetos sem alterar suas classes.
Template MethodDefine o esqueleto de um algoritmo em uma classe.Envolve herança e redefinição de passos, não mediação de objetos.
MediatorCentraliza interações entre objetos.Corresponde exatamente à descrição do texto.

Conclusão

A descrição de um objeto que "centraliza todas as interações" e permite que outros objetos se comuniquem apenas através dele é a definição exata do padrão Mediator.

Portanto, a alternativa correta é a E.

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.