No desenvolvimento de sistemas e arquitetura de software, o...

Próximas questões
Com base no mesmo assunto
Q3835620 Engenharia de Software
No desenvolvimento de sistemas e arquitetura de software, o padrão de projeto "Observador" (Observer) é amplamente utilizado para gerenciar dependências entre objetos. Analise as afirmativas a seguir sobre Padrões de Projeto (Design Patterns) do Gamma et al. (GoF):

I.O padrão Observer 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.
II.O padrão Singleton garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global a ela, sendo recomendado para gerenciar recursos compartilhados como pools de conexão com banco de dados.
III.O padrão Estratégia (Strategy) permite definir uma família de algoritmos, encapsular cada um deles e torná-los intercambiáveis, permitindo que o algoritmo varie independentemente dos clientes que o utilizam.

Está correto o que se afirma em:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

Fundamento decisivo: A decisão dependia de verificar se as três afirmativas reproduziam a definição consagrada dos padrões citados no enunciado. Confirmada essa compatibilidade em I, II e III, a alternativa correta é a que reúne as três.

Tema central: Padrões GoF
Análise das alternativas
A
Errada
Incorreta porque restringe a correção à II e exclui I e III, mas I descreve corretamente Observer e III descreve corretamente Strategy segundo as definições clássicas.
B
Certa
A alternativa B está correta porque as três afirmativas são materialmente compatíveis com a caracterização consagrada dos padrões. Em I, Observer é exatamente o padrão que estabelece dependência um-para-muitos com notificação e atualização automática dos dependentes quando o sujeito muda de estado. Em II, Singleton garante uma única instância e um ponto de acesso global; a referência a recurso compartilhado é admissível no contexto da questão e não descaracteriza o padrão. Em III, Strategy define uma família de algoritmos, encapsula cada algoritmo e permite sua intercambialidade, com variação independente dos clientes.
C
Errada
Incorreta porque admite apenas III, quando I também está correta e II não contém erro conceitual suficiente para ser invalidada na chave adotada pela questão.
D
Errada
Incorreta porque exclui III, embora a afirmativa reproduza a formulação clássica de Strategy: família de algoritmos, encapsulamento e intercambialidade.
E
Errada
Incorreta porque exclui II. O núcleo técnico da II está correto, já que Singleton assegura uma única instância e ponto de acesso global; a menção a recurso compartilhado é aceitável em contexto de reconhecimento conceitual.
Pegadinha da questão
A dúvida poderia surgir na afirmativa II por causa da expressão 'sendo recomendado', mas isso não altera o núcleo conceitual cobrado, que é a definição clássica de Singleton.
Dica para questões semelhantes
  • Em questões de padrões GoF, compare a assertiva com a definição canônica do padrão antes de avaliar debates modernos de boas práticas.
  • Quando a alternativa traz definição correta e um exemplo de uso apenas compatível, o ponto decisivo é a essência conceitual do padrão.
  • Observer, Singleton e Strategy costumam ser reconhecidos por seus verbos centrais: notificar dependentes, garantir instância única com acesso global, encapsular algoritmos intercambiáveis.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Resposta: B

Explicação:

Todas as três afirmativas descrevem corretamente padrões de projeto do GoF:

I. Observer – Define uma dependência um‑para‑muitos; quando o sujeito muda de estado, notifica automaticamente seus observadores.

II. Singleton – Garante instância única e ponto global de acesso; pode ser usado para recursos compartilhados como pools de conexão.

III. Strategy – Encapsula algoritmos intercambiáveis, permitindo variar o comportamento sem alterar o cliente.

Todas estão corretas.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo