Pular para o conteúdo principal

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

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
fg085513
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Desenvolvimento de Software para Operação de Satélites
Um sistema distribuído tem como objetivo coletar e distribuir dados meteorológicos para um conjunto de usuários. Para tal, foram empregados pelo desenvolvedor dois padrões de design:Padrão (1): Criação de uma classe com apenas uma instância, responsável por controlar o acesso a um determinado sensor operado por equipes técnicas remotas.Padrão (2): Definição de um objeto principal, de forma que todos os usuários dependentes são notificados e atualizados em tempo real.Assinale a opção que indica os padrões de design (1) e (2), respectivamente.
  1. ASingleton e Heritage.
  2. BStrategy e Composite.
  3. CStrategy e Observer.
  4. DSingleton e Observer.
  5. EBuilder e Factory.
Revelar gabarito e comentário

GabaritoD — Singleton e 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: Singleton e Observer

Gabarito: letra D. O Padrão (1) descreve a criação de uma classe com apenas uma instância, que é exatamente a definição do padrão Singleton (GoF, padrão criacional). O Padrão (2) descreve um objeto principal que notifica e atualiza todos os dependentes em tempo real, que é a definição do padrão Observer (GoF, padrão comportamental). A alternativa D é a única que combina corretamente Singleton e Observer, nessa ordem.

A banca testa o conhecimento dos padrões GoF mais clássicos e sua aplicação em cenários descritos. Vejamos cada alternativa.

Padrão

Descrição

Categoria GoF

Exemplo de Uso

Singleton

Garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela

Criacional

Controle de acesso a um sensor único operado por equipes remotas

Observer

Define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos seus dependentes são notificados e atualizados automaticamente

Comportamental

Objeto principal que notifica e atualiza todos os usuários dependentes em tempo real

Alternativa A — ❌ Incorreta

Singleton está correto para (1), mas Heritage (ou Herança) não é um padrão de projeto GoF. Herança é um mecanismo da orientação a objetos, não um padrão de projeto. Além disso, o padrão (2) não corresponde a Heritage.

Alternativa B — ❌ Incorreta

Strategy é um padrão comportamental que permite trocar algoritmos em tempo de execução, não se aplica a controle de acesso a sensor com instância única. Composite é um padrão estrutural que compõe objetos em estruturas de árvore para representar hierarquias parte-todo, também não se encaixa em nenhum dos dois cenários.

Alternativa C — ❌ Incorreta

Strategy novamente errado para (1). Observer está correto para (2), mas a ordem está trocada? Na verdade a questão pede (1) e (2) respectivamente. Essa alternativa coloca Strategy para (1) e Observer para (2), mas (1) é Singleton, não Strategy. Portanto incorreta.

Alternativa D — ✅ Correta ⟵ GABARITO

Singleton garante que uma classe tenha apenas uma instância e fornece um ponto global de acesso a ela, perfeitamente adequado para controlar acesso a um sensor único. Observer define uma dependência um-para-muitos entre objetos, de modo que quando um objeto muda de estado, todos seus dependentes são notificados e atualizados automaticamente. Exatamente o que o Padrão (2) descreve.

Alternativa E — ❌ Incorreta

Builder é um padrão criacional que separa a construção de um objeto complexo de sua representação, permitindo o mesmo processo de construção criar diferentes representações. Factory (Factory Method ou Abstract Factory) são padrões criacionais para criação de objetos sem especificar a classe concreta. Nenhum deles se aplica aos cenários descritos.

Conclusão: A única combinação correta dos padrões (1) Singleton e (2) Observer é a letra D.

Link permanente: /questoes/fg085513