O padrão de projeto Singleton, definido pelos padrões GoF (...

Próximas questões
Com base no mesmo assunto
Q3255753 Programação
O padrão de projeto Singleton, definido pelos padrões GoF (Gang of Four), garante que uma classe tenha uma única instância e forneça um ponto global de acesso a ela. Acerca desse padrão, marque (V), para as afirmativas verdadeiras, e (F), para as falsas.

(__) O Singleton é implementado utilizando um método estático que retorna a única instância da classe, criando-a caso ainda não exista.
(__) O padrão Singleton é adequado para gerenciar estados globais em aplicações multithreaded, sem necessidade de sincronização explícita.
(__) A implementação de um Singleton deve garantir que o construtor da classe seja privado, impedindo a criação de instâncias fora do escopo do padrão.
(__) O Singleton é frequentemente utilizado para recursos compartilhados, como conexões de banco de dados e pools de threads, onde a instância única centraliza o controle.

A sequência está correta em:
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: B - V − F − V − V

O tema central da questão é o Padrão de Projeto Singleton, que é um dos padrões de projeto definidos pelo famoso livro "Design Patterns: Elements of Reusable Object-Oriented Software", dos autores conhecidos como "Gang of Four" (GoF). Este padrão é crucial para garantir que uma classe tenha uma única instância durante todo o ciclo de vida de uma aplicação, fornecendo um ponto de acesso global a essa instância.

Vamos analisar cada afirmativa:

(V) O Singleton é implementado utilizando um método estático que retorna a única instância da classe, criando-a caso ainda não exista. Isso está correto. A implementação convencional do Singleton utiliza um método estático geralmente chamado de getInstance() para garantir que a instância seja única. Este método verifica se a instância já foi criada; se não, ela é instanciada.

(F) O padrão Singleton é adequado para gerenciar estados globais em aplicações multithreaded, sem necessidade de sincronização explícita. Esta afirmação está incorreta. Em um ambiente multithreaded, a implementação básica do Singleton pode levar a problemas de concorrência. Portanto, é necessário usar mecanismos de sincronização, como o uso de palavra-chave synchronized em Java, para evitar que múltiplas instâncias sejam criadas em condições de corrida.

(V) A implementação de um Singleton deve garantir que o construtor da classe seja privado, impedindo a criação de instâncias fora do escopo do padrão. Isso é correto. Tornar o construtor privado é uma técnica usada para evitar a criação de novos objetos fora do controle do padrão Singleton, forçando o uso do método estático para acessar a instância.

(V) O Singleton é frequentemente utilizado para recursos compartilhados, como conexões de banco de dados e pools de threads, onde a instância única centraliza o controle. Esta é uma afirmação verdadeira. O Singleton é ideal para situações onde é necessário gerenciar recursos compartilhados de maneira centralizada para garantir consistência e controle de acesso.

Assim, a sequência correta de verdadeiro (V) e falso (F) é V - F - V - V, que corresponde à alternativa B.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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 padrão singleton garante que uma classe tenha apenas uma instância e fornece um ponto de acesso global para essa instância. Em outras palavras, o controle sobre a instanciação é mantido dentro da própria classe, não sendo cedido ao cliente.

Gabarito: letra B.

Clique para visualizar este comentário

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