Singleton

Singleton é um padrão de projeto (desingn patterns) criacional cuja a função é garantir a criação de uma única instância de determinada classe para toda a aplicação, ou seja, o objeto desta classe será criada apenas uma vez e sempre que necessário usa-lo, será sempre o mesmo objeto que será utilizado.

Para isso é necessário que a classe tenha um construtor privado, tenha um atributo estático e privado da classe para que nele seja armazenado a instância única da classe e um método público e estático para retornar a instância única do objeto e cria-la quando for utilizada da primeira vez.


public class SingletonClass {

	private static SingletonClass instance;

	private SingletonClass() {
	}

	public static SingletonClass getInstance(){
		if(instance == null){
			instance = new SingletonClass();
		}
		return instance;
	}
}

Este código acima pode ser melhorado ainda para que tenha maior garantia tornado o atributo da classe também uma constante.


public class SingletonClass {

	private static final SingletonClass INSTANCE = new SingletonClass();

	private SingletonClass() {
	}

	public static SingletonClass getInstance(){
		return INSTANCE;
	}
}

Em UML:

Class Diagram0

Referência: Aula de Engenharia de Software – Profº Marcio – Univás.

Anúncios