Como garantimos que uma classe tenha somente uma instância ...
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.
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