A equipe de desenvolvimento precisa criar um mecanismo para ...

Próximas questões
Com base no mesmo assunto
Q3885111 Engenharia de Software
A equipe de desenvolvimento precisa criar um mecanismo para garantir que o sistema de cache de documentos legislativos tenha apenas uma única instância ativa em toda a aplicação, de modo que todas as requisições acessem o mesmo recurso compartilhado, evitando inconsistência de dados.
O Padrão de Projeto da classificação GoF mais apropriado para resolver esse problema, restringindo a instanciação de uma classe a um único objeto, é o(a)
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

Fundamento decisivo: A expressão central do enunciado é a exigência de “apenas uma única instância ativa” para o cache, o que corresponde à definição de Singleton.

Tema central: Singleton
Análise das alternativas
A
Errada
Factory Method trata da criação de objetos por subclasses ou fábricas. O ponto cobrado era garantir instância única, e esse padrão não tem como finalidade restringir a classe a um único objeto.
B
Errada
Builder organiza a construção passo a passo de objetos complexos. Esse objetivo é diferente de controlar a quantidade de instâncias de uma classe, por isso não atende ao enunciado.
C
Errada
Observer define uma dependência entre objetos para notificação de mudanças de estado. O problema da questão não é comunicação entre objetos, mas restrição de instanciação.
D
Certa
A alternativa D está certa porque Singleton é o padrão GoF que garante uma única instância de uma classe e acesso compartilhado a ela. Isso corresponde exatamente ao que o enunciado descreve.
E
Errada
Strategy serve para encapsular algoritmos ou comportamentos intercambiáveis. Isso não se relaciona com garantir uma única instância ativa de uma classe.
Pegadinha da questão
Confundir a necessidade de compartilhar um cache com a simples criação de objetos. O requisito decisivo era impedir múltiplas instâncias, o que aponta para Singleton.
Dica para questões semelhantes
  • Se o enunciado trouxer “uma única instância”, “único objeto” ou “acesso compartilhado/global”, o padrão indicado é Singleton.
  • Não basta haver criação de objetos; é preciso verificar se a exigência é sobre unicidade da instância.

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

O Singleton é o padrão de projeto mais famoso (e às vezes o mais polêmico) da categoria Criacional do catálogo do GoF (Gang of Four). Ele tem um propósito de vida extremamente específico: garantir que uma classe tenha apenas uma única instância e fornecer um ponto global de acesso para ela.

Na prática de um sistema de cache (como o do cenário), se cada parte do código criasse o seu próprio objeto de cache usando um new Cache(), você teria dados duplicados e inconsistentes espalhados pela memória do servidor. O Singleton resolve isso escondendo o construtor (tornando-o private) e liberando apenas um método estático (geralmente chamado de getInstance()) que sempre devolve a exata mesma instância da memória para quem pedir.

Gabarito: D

A alternativa correta é a D) Singleton.

O padrão Singleton (do grupo de padrões Criacionais do GoF) tem como objetivo principal garantir que uma classe tenha apenas uma instância durante toda a execução do programa, fornecendo um ponto de acesso global a ela.

  • Factory Method: Foca em como os objetos são criados, delegando a responsabilidade para subclasses, não em restringir o número de instâncias.
  • Builder: Utilizado para construir objetos complexos passo a passo.
  • Observer: Um padrão comportamental para definir uma dependência um-para-muitos (notificações de mudanças de estado).
  • Strategy: Foca em trocar algoritmos/comportamentos de forma dinâmica.

Resumo: Falou em "instância única" ou "único objeto" para um recurso compartilhado (como cache ou conexão de banco de dados), a resposta é Singleton.

letra d)

O Singleton é um padrão de projeto criacional que permite a você garantir que uma classe tenha apenas uma instância, enquanto provê um ponto de acesso global para essa instância.

fonte: https://refactoring.guru/pt-br/design-patterns/singleton

Clique para visualizar este comentário

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