Aula 20

Padrão Singleton

Como vimos no Laborátorio o padrão Singleton é um padrão de projeto de criação de objetos. O objetivo é garantir uma instância única e acessível de forma global e uniforme para toda classe que implementa este padrão.

Com isso foi feita uma proposta de solução pelo padrão Singleton, que é tornar a própria classe responsável pela sua única instância. A classe que implementa o padrão Singleton garante o acesso à sua instância e ainda intercepta as requisições para criação de novos objetos, garantindo que nenhuma outra instância seja criada.

Um programa que instancia múltiplas cópias, provavelmente, possui um erro, mas a utilização do padrão Singleton faz com que tais erros sejam inofensivos.

Por exemplo:

public class SingletonLog {
// Construtor privado. Suprime o construtor publico padrao.
private SingletonLog() {
// Leitura da configuração de log. Normalmente descrita em um arquivo.
}
// Faz o log de eventos da aplicacao
public void doLog(String eventDescription) {

}
//Retorna a instancia unica da classe SingletonLog
public static SingletonLog getInstance() {
return SingletonLogHolder.instance;
}
//Classe auxiliar para criacao da instancia. Evita problemas de sincronizacao de threads.
private static class SingletonLogHolder {
private static SingletonLog instance = new SingletonLog();
}
}

Bibliográfia:
http://72.14.205.104/search?q=cache:OdPo0CfFupEJ:elton.utfpr.net/Escola/Padr%25E3o%2520Singleton.pdf+Padr%C3%A3o+Singleton&hl=pt-BR&ct=clnk&cd=15&gl=br&lr=lang_pt

http://pt.wikipedia.org/wiki/Singleton

Nenhum comentário: