🎯 Saiba o que estudar

Avançado com Treinador a partir de R$ 0,76/dia

Como garantimos que uma classe tenha somente uma instância ...

Próximas questões
Com base no mesmo assunto
Q879914 Arquitetura de Software

Como garantimos que uma classe tenha somente uma instância e que essa instância seja facilmente acessível? Uma variável global torna um objeto acessível, mas não impede você de instanciar múltiplos objetos.

GAMMA, E. et al. Padrões de Projeto: Soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2000.


Em relação ao exposto e ao padrão de projeto Singleton, assinale alternativa que indica uma das vantagens do referido padrão.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a Alternativa A

Padrão Singleton: O padrão de projeto Singleton é amplamente utilizado em desenvolvimento de software orientado a objetos para garantir que uma classe tenha apenas uma instância e proporcionar um ponto global de acesso a essa instância. Essa abordagem é útil em situações onde é necessário um único objeto para coordenar ações em todo o sistema, como gerenciadores de configuração, pools de conexões de banco de dados, etc.

Justificativa da Alternativa A:

A - O padrão de projeto garante a existência de apenas um único objeto da classe em questão, disponibilizando um modo de acessá-la.
Esta alternativa está correta porque descreve exatamente o propósito do padrão Singleton. Ele assegura que uma classe tenha apenas uma instância e fornece um ponto de acesso global a essa instância. A implementação típica envolve a criação de uma classe com um método estático que retorna a instância única, verificando se a instância já existe antes de criá-la.

Comentários sobre as alternativas incorretas:

B - O padrão aumenta a quantidade de variáveis globais no namespace em questão.
Esta alternativa está incorreta. O padrão Singleton, na verdade, reduz a necessidade de variáveis globais, pois fornece um único ponto global de acesso à instância. Isso ajuda a evitar problemas associados ao uso excessivo de variáveis globais, como conflitos de nomes e dificuldade de manutenção do código.

C - Não é necessário implementar qualquer mecanismo de controle de instância do objeto.
Esta alternativa também está incorreta. A essência do padrão Singleton é precisamente implementar um mecanismo que garante que apenas uma instância da classe seja criada. Sem esse controle, múltiplas instâncias poderiam ser criadas, contrariando o propósito do padrão.

D - O padrão Singleton não apresenta uma interface simples, uma vez que a implementação dele não é trivial.
Esta alternativa é incorreta. Embora a implementação do Singleton possa ter algumas nuances, especialmente quando consideramos problemas de concorrência em ambientes multithread, o padrão em si tem uma interface bastante simples: um método estático que retorna a instância única.

E - O padrão faz necessário o uso de variáveis globais.
Esta alternativa está incorreta porque o padrão Singleton é uma alternativa ao uso de variáveis globais. Ele evita a necessidade de variáveis globais fornecendo um ponto de acesso controlado e centralizado para a instância única da classe.

Espero ter ajudado a esclarecer o tema do padrão Singleton e as razões que tornam a Alternativa A a correta. Se precisar de mais alguma coisa, estou à disposição!

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

Singleton (única instância)

Digamos que temos uma classe qualquer que chamaremos de Singleton e queremos que em toda a aplicação só exista uma única instância dessa mesma classe, e que você tenha que garantir que isso aconteça, no caso de ser um programador solo, de que você não se esqueça disso e no caso de uma equipe, que ninguém viole essa regra, bem com o padrão de projeto Singleton garantiremos uma única instância para a classe em questão.

 

Letra A

 

https://www.devmedia.com.br/design-patterns-singleton-parte-3/16782

a-

Singleton é usado quandouma classe nao deve ser instanciada, usando-a como interfaceprincipal

a) O padrão de projeto garante a existência de apenas um único objeto da classe em questão, disponibilizando um modo de acessá-la. (Correto)

 

b) O padrão aumenta a quantidade de variáveis globais no namespace em questão.  (Utiliza apenas uma variável de um objeto)

 

c)Não é necessário implementar qualquer mecanismo de controle de instância do objeto. (É necessário utilizar o construtor como private e no método que retorna a variavel verificar se a mesma já foi instanciada.)

 

d) O padrão Singleton não apresenta uma interface simples, uma vez que a implementação dele não é trivial. (Um do padrões mais simples de implementar é o singleton.)

 

e) O padrão faz necessário o uso de variáveis globais.  (Utiliza apenas um variável stática)

o tipo da questão, kkkk

perguntam qual é a vantagem, dai só a A tem vantagem, e na BCDE só escrevem desgraças kkkk

Clique para visualizar este comentário

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