Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FCC 2019
Arquitetura de Software›Padrões de projeto (Design Patterns)
Código
fc057856
Banca
FCC
Órgão
TRF - 4ª REGIÃO
Ano
2019
Cargo
Analista Judiciário - Sistemas de Tecnologia da Informação
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.
BComposite.
CAdapter.
DFactory Method.
EPrototype.
Revelar gabarito e comentário▾
GabaritoA — Mediator.
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”.
Padrões de Projeto GoF: Mediator
Gabarito: letra A. O padrão descrito é o Mediator, um padrão comportamental que define um objeto intermediário (mediador) para encapsular as interações entre um conjunto de objetos, promovendo baixo acoplamento e eliminando referências explícitas entre eles. A descrição do problema — múltiplas plataformas com formas distintas de receber mensagens, necessidade de evitar relacionamentos muitos-para-muitos e desejo de variar a interação independentemente — encaixa-se perfeitamente na finalidade do Mediator.
A questão testa o reconhecimento das características dos padrões GoF a partir de uma situação prática. O padrão Mediator é um dos 23 padrões do catálogo GoF, classificado como comportamental. Ele atua como um "interlocutor" central, gerenciando a comunicação entre objetos que, de outra forma, precisariam conhecer uns aos outros explicitamente. Isso resolve o problema de acoplamento excessivo e complexidade em cenários com muitos relacionamentos.
Padrão GoF
Classificação
Objetivo Principal
Aplicação no Problema
Mediator
Comportamental
Encapsular a interação entre um conjunto de objetos, promovendo acoplamento fraco
Gerencia a comunicação entre múltiplas plataformas móveis, evitando referências explícitas entre elas
Composite
Estrutural
Compor objetos em estruturas de árvore para representar hierarquias parte-todo
Não se aplica, pois não há hierarquia de objetos
Adapter
Estrutural
Converter a interface de uma classe em outra interface esperada pelo cliente
Não se aplica, pois o foco não é adaptar interfaces, mas gerenciar interações
Factory Method
Criacional
Definir uma interface para criar objetos, delegando a instanciação para subclasses
Não se aplica, pois não envolve criação de objetos
Prototype
Criacional
Criar novos objetos a partir de um protótipo, clonando instâncias existentes
Não se aplica, pois não envolve clonagem de objetos
Padrões GoF
1Comportamentais
Mediator (encapsula interação)
2Estruturais
Composite (hierarquia parte-todo)
Adapter (converte interface)
3Criacionais
Factory Method (cria objetos)
Prototype (clona objetos)
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
O Mediator é exatamente o padrão que encapsula a interação entre objetos, promovendo acoplamento fraco e permitindo que as interações variem independentemente. A descrição do enunciado é uma definição clássica desse padrão.
Alternativa B — ❌ Incorreta
O padrão Composite é um padrão estrutural usado para compor objetos em estruturas de árvore para representar hierarquias parte-todo. Não trata de mediação de interações entre objetos.
Alternativa C — ❌ Incorreta
O padrão Adapter é um padrão estrutural que converte a interface de uma classe em outra interface esperada pelos clientes. Ele permite que classes com interfaces incompatíveis trabalhem juntas, mas não gerencia interações múltiplas e nem evita referências explícitas entre um conjunto de objetos.
Alternativa 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. Não está relacionado à intermediação de comunicação entre objetos.
Alternativa E — ❌ Incorreta
O padrão Prototype é um padrão criacional que permite criar novos objetos a partir da clonagem de um protótipo. Também não tem relação com o problema de mediação de interações.