Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — FGV 2021

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fg045088
Banca
FGV
Órgão
TCE-AM
Ano
2021
Nível
Superior
Cargo
Auditor Técnico de Controle Externo - Tecnologia da Informação - 2ª dia
O Sistema de Acompanhamento de Mercados (SisMARKET) apoia o processo de controle de transações de compra e venda de ativos financeiros e fornece aos gestores visões distintas contendo gráficos que demonstram continuamente o andamento das transações. Sendo assim, o SisMARKET possui uma funcionalidade para notificar e atualizar as visões gráficas automaticamente sempre que o quantitativo de um ativo financeiro sofre alterações. No projeto de desenvolvimento do SisMARKET foram empregadas boas práticas, como o uso de padrões de projeto.Sendo assim, no SisMARKET, o padrão de projeto utilizado na construção da funcionalidade que configura uma dependência um-para-muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente, foi o:
  1. AMemento;
  2. BProxy;
  3. CObserver;
  4. DState;
  5. EStrategy.
Revelar gabarito e comentário

GabaritoC — Observer;

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 (Design Patterns) – Observer

Gabarito: letra C. O padrão Observer é aquele que define uma dependência um-para-muitos entre objetos, de modo que, quando um objeto muda de estado, todos os seus dependentes são notificados e atualizados automaticamente. Essa é exatamente a descrição fornecida no enunciado sobre a funcionalidade do SisMARKET.

O padrão Observer é um padrão comportamental do catálogo GoF (Gang of Four). Ele estabelece um mecanismo de notificação no qual um sujeito (subject) mantém uma lista de observadores (observers) e os notifica sobre mudanças de estado, sem que o sujeito precise conhecer os detalhes dos observadores. Isso promove baixo acoplamento entre o sujeito e os observadores.

Alternativa A — ❌ Incorreta

O padrão Memento é usado para capturar e externalizar o estado interno de um objeto sem violar o encapsulamento, permitindo que o objeto seja restaurado a esse estado posteriormente. Não se aplica à notificação automática de dependentes.

Alternativa B — ❌ Incorreta

O padrão Proxy fornece um substituto ou representante de outro objeto para controlar o acesso a ele. Pode ser usado para lazy loading, controle de acesso, logging, etc. Não está relacionado à notificação de mudanças de estado para múltiplos objetos.

Alternativa C — ✅ Correta ⟵ GABARITO

Observer é exatamente o padrão que atende à descrição: dependência um-para-muitos com notificação automática de mudanças de estado. Exemplos comuns incluem sistemas de eventos, listeners em interfaces gráficas e mecanismos de publish-subscribe.

Alternativa D — ❌ Incorreta

O padrão State permite que um objeto altere seu comportamento quando seu estado interno muda, parecendo que a classe do objeto mudou. Foca em como um objeto se comporta conforme seu estado, e não em notificar outros objetos sobre essa mudança.

Alternativa E — ❌ Incorreta

O padrão Strategy define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis. Permite que o algoritmo varie independentemente dos clientes que o utilizam. Não está concebido para notificar múltiplos objetos sobre mudanças.

PEGA ESSA DICA!

Em provas de concurso/arquitetura de software, a descrição literal de cada padrão GoF costuma ser cobrada. Decore a frase característica do Observer: "um-para-muitos, notificação automática". Esse é o padrão mais associado a sistemas de eventos e atualização de views.

Gabarito: letra C.

Link permanente: /questoes/fg045088