Questão nº 24
Questão de Tecnologia da Informação · FCC TRF4 2019 (nº 24)
Uma Analista de TI quer criar um aplicativo capaz de trocar mensagens entre diversas plataformas móveis, um Android enviando mensagem para um iOS, um Windows Phone trocando mensagens com um Android etc. O problema é que cada uma destas plataformas implementa maneiras diferentes de receber mensagens. Ela sabe que criar vários métodos para cada plataforma não seria uma solução adequada, pois, se o aplicativo precisar incluir uma nova plataforma, outros métodos teriam que ser criados. A modelagem de relacionamentos muitos para muitos pode deixar o projeto do sistema demasiadamente complexo. A Analista procurou, então, um padrão de projeto para utilizar na solução. Dentre os padrões GoF, encontrou um que permite definir um objeto que encapsula a forma como um conjunto de objetos interage. Este padrão promove o acoplamento fraco ao evitar que os objetos se refiram uns aos outros explicitamente e permite variar o uso da interação de forma independente. Atua como um interlocutor entre relacionamentos muitos para muitos, ao evitar uma referência explícita aos objetos, sendo adequado ao problema. Trata-se do padrão comportamental
- AMediator. (alternativa correta)
- BComposite.
- CAdapter.
- DFactory Method.
- EPrototype.
Resposta comentada
Gabarito Alternativa A
O padrão Mediator (Mediador) define um objeto que encapsula como um conjunto de objetos interage, promovendo o acoplamento fraco ao evitar que os objetos se refiram uns aos outros explicitamente e centralizando a lógica de comunicação.
- (A) Correta: O padrão Mediator é ideal para este cenário. Ele cria um objeto central (o mediador) que gerencia as comunicações entre as diferentes plataformas (objetos colega). Em vez de cada plataforma ter que conhecer e se comunicar diretamente com todas as outras (o que geraria um emaranhado de N*N-1 conexões e alto acoplamento), elas se comunicam apenas com o mediador. O mediador, por sua vez, sabe como rotear e traduzir as mensagens para as plataformas apropriadas, desacoplando-as e simplificando a adição de novas plataformas ou a alteração das regras de interação.
- (B) Incorreta: O padrão Composite é um padrão estrutural que permite compor objetos em estruturas de árvore para representar hierarquias parte-todo, não sendo adequado para gerenciar interações complexas entre objetos pares.
- (C) Incorreta: O padrão Adapter (Adaptador) é um padrão estrutural que converte a interface de uma classe em outra interface que os clientes esperam. Embora o problema mencione "maneiras diferentes de receber mensagens" (interfaces), o Adapter resolveria a compatibilidade de uma interface com outra, não a complexidade de interação entre muitos objetos distintos. A armadilha aqui é que, embora um Adapter possa ser usado pelo Mediator para lidar com as diferenças específicas de cada plataforma, o problema central é a gestão do relacionamento "muitos para muitos" e o acoplamento, que é a função do Mediator.
- (D) Incorreta: O padrão Factory Method é um padrão criacional que define uma interface para criar um objeto, mas permite que as subclasses decidam qual classe instanciar, sendo focado na criação de objetos, não na interação.
- E) Incorreta: O padrão Prototype é um padrão criacional que permite criar novos objetos copiando um objeto existente (protótipo), sendo focado na criação de objetos, não na interação.
Fonte: FCC TRF4 2019 Analista Judiciário - Área Apoio Especializado - Especialidade Sistemas de Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.