Você está na página 1de 2

Singleton

Conceito

Singleton é o nome dado a um dos inúmeros padrões de desenvolvimento de


software criados e utilizados para resolver problemas que são comuns em desenvolvimento
de software.

Existem ocasiões no desenvolvimento que queremos limitar a criação de instâncias


de classes, como no clássico exemplo de acesso ao banco de dados. Assim, esse padrão
tenta resolver esse problema fornecendo apenas um único ponto de acesso à instância de
uma classe. O funcionamento é bem simples, sempre que requisitado uma nova instância, o
método verifica se já existe uma instância criada. Se já existir, retorna ela mesmo, caso
contrário faz a criação e retorna.

O diagrama de classe abaixo mostra o formato que uma classe singleton possui.

Primeiramente, um construtor privado que impede que a classe seja instanciada.


Uma variável privada que é uma instância da própria classe e um método público
responsável por retornar a instância da classe. Porém isso não é tudo, ainda falta um
detalhe. Se tivéssemos apenas isso, não conseguiríamos fazer o acesso a classe. Temos o
método público, mas como chamá-lo se não podemos instanciar a classe? A solução para
esse problema é tornar o método getInstance estático e também a variável privada que é
instância da classe.
Utilização no curso Android

A utilização do conceito singleton no curso Android acontece no acesso ao banco de


dados. Claro que esse conceito pode ser usado em outros lugares, desde que haja a
necessidade.
É custosa realizar a conexão com o banco de dados Android, além disso, manter
várias instâncias do banco de dados aberta pode ocasionar problemas e uso demasiado de
memória, uma vez que a responsabilidade do gerenciamento fica a par do desenvolvedor.
O padrão do singleton faz com que haja sempre somente uma instância da classe
que faz acesso ao banco de dados e com o uso do modificador synchronized impede
também que haja acesso concorrente ocasionado pelo uso de threads.
Abaixo, exemplo em java da implementação de uma classe singleton.

Você também pode gostar