Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * SINGLETON * * SINGLETON O padrão de projeto (Design Pattern) Singleton tem entre outras funções a garantia de apenas uma instância de determinada classe, ou seja, somente um objeto por classe. Para o desenvolvimento de tal implementação existem algumas maneiras, mas a tradicional é baseada no uso de atributos estáticos e da modificação do controle de acesso do construtor, onde um membro externo depende de uma propriedade para “requisitar” uma instância. * * SINGLETON * * SINGLETON Classe Singleton Considerando as características temos: 1) Variável estática contendo a instância para a classe; 2) Construtor declarado private. 3) Método para requisitar instância. A implementação em Java seria a seguinte: public class PadraoSingleton{ private static PadraoSingleton padraoSingleton; private PadraoSingleton(){} public static PadraoSingleton getInstance(){ if (padraoSingleton == null){ padraoSingleton = new PadraoSingleton(); } return padraoSingleton; } } Singleton na Prática O uso do padrão Singleton, normalmente está associado a economia de recursos, ou melhor, quando a resposta para seguinte pergunta é verdadeira: Quando você precisa de uma única instância? * * SINGLETON Por exemplo, quando múltiplas instâncias não fazem sentido, quando estas instâncias apenas desperdiçam memória ou processamento. Na pior das hipóteses, quando múltiplas instâncias causam um comportamento incorreto para o software. Desta forma também garante um ponto de acesso global para acesso a instância. Considerando o escopo de vida do Singleton, o mesmo é iniciado na primeira requisição e finalizando apenas quando a aplicação é encerrada. O que pode considerar uma longa vida caso o mesmo seja usado somente uma vez, assim o uso do mesmo deve ter uso considerado sem esquecer que o escopo do mesmo é de todo um programa, um sistema ou mesmo um sistema distribuído. Este padrão tem um uso comum em conexões com banco de dados, pois o mesmo proporciona uma única instância, ou seja, canal de comunicação entre a aplicação e o SGBD. Reconsiderando o uso do Singleton em implementações de Classes de conexão com banco de dados, não se pode esquecer que a sobrecarga de execução das sintaxes será toda sobre uma única thread, o que pode ocasionar outros problemas à aplicação. * * SINGLETON O padrão Singleton em resumo proporciona uma única instância e fornece um ponto global de acesso a mesma.. O Singleton é um dos padrões de projeto mais simples. Ele é usado quando for necessária a existência de apenas uma instância de uma classe. Foi apresentado no GoF como um padrão de criação, por lidar com a criação de objetos. Segundo o GoF para uma classe ser um singleton, deve-se garantir que haverá apenas uma instância na aplicação e que deve-se fornecer um ponto de acesso à mesma. Mas como garantir que haverá apenas uma instância? É de conhecimento comum que, para criar uma instância de uma classe, devemos chamar o seu construtor. Assim, para resolvermos o problema, devemos restringir o acesso ao construtor, tornando-o um método privado. Em seguida, deve-se utilizar um método público que faça o controle da instanciação, de modo que ela só possa ser feita uma vez.
Compartilhar