O Singleton é um padrão de projeto que garante que apenas uma instância de uma classe seja criada e fornece um ponto de acesso global a essa instância. Ele limita a criação de instâncias de uma classe, como no exemplo de acesso a banco de dados, retornando sempre a mesma instância quando solicitada. No Android, o Singleton é usado para acessar o banco de dados, mantendo uma única conexão aberta para evitar problemas e uso excessivo de memória.
O Singleton é um padrão de projeto que garante que apenas uma instância de uma classe seja criada e fornece um ponto de acesso global a essa instância. Ele limita a criação de instâncias de uma classe, como no exemplo de acesso a banco de dados, retornando sempre a mesma instância quando solicitada. No Android, o Singleton é usado para acessar o banco de dados, mantendo uma única conexão aberta para evitar problemas e uso excessivo de memória.
O Singleton é um padrão de projeto que garante que apenas uma instância de uma classe seja criada e fornece um ponto de acesso global a essa instância. Ele limita a criação de instâncias de uma classe, como no exemplo de acesso a banco de dados, retornando sempre a mesma instância quando solicitada. No Android, o Singleton é usado para acessar o banco de dados, mantendo uma única conexão aberta para evitar problemas e uso excessivo de memória.
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.