Série DesignPattern: Singleton

Olá Pessoal,

Mais um post da série “Design Pattern: Não é receita de bolo”, e hoje vamos conhecer o Singleton. Esse será um post bem pequeno. O singleton é um padrão adorado por uns e criticado por outros. Como tudo na vida, há vantagens e desvantagens.Vamos conhecer um pouco sobre esse padrão hoje.
Lets go…

Singleton
O Singleton nos permite ter apenas uma única instância de uma classe. Ou seja, não podemos ter mais que um objeto de uma classe singleton ao mesmo tempo no sistema. E para garantir isso declaramos o construtor como private e temos um método static que controla a criação do objeto.

Um exemplo na prática. Vamos supor que temos uma classe responsável por ler dados de um arquivo de properties e esses dados serão usados dentro do sistema e não queremos ter mais que uma instância da classe para lê os dados do arquivo de properties.  Para isso, criamos um Singleton da classe que lê dados desse arquivo. A sintaxe para criar um Singleton é muitos simples, veja:

classe XX{
private static XX instancia;
private XX(){
}
public static XX getInstance(){
if(instancia==null){
XX.instancia = new Instancia();
}
return XX.instancia;
}

Sempre que precisarmos da instância dessa classe, apenas chamamos o método getInstance() e  teremos acesso aos métodos disponíveis. Vamos ver:

Desenvolvimento

package com.camilolopes.classes;
public class ReadConfiguration {
private static ReadConfiguration instance;
private ReadConfiguration(){
//ninguem pode instanciar essa classe
}
//metodo que controla a criação de objetos
public static ReadConfiguration getInstance(){
if (instance==null) {
ReadConfiguration.instance = new ReadConfiguration();
}

return ReadConfiguration.instance;
}
public String getUrl() {
// TODO Auto-generated method stub
return “url”;
}

}

Criaremos uma classe com o método main para testarmos:

package com.camilolopes.classes;

public class MainConfiguration {

public static void main(String[] args) {
ReadConfiguration configuration = ReadConfiguration.getInstance();
System.out.println(configuration.getUrl());
}
}

Git Hub 

Os projetos encontram-se no Github:

https://camilolopes@github.com/camilolopes/workspacedesignpattern.git 

Simples não? Vou ficando por aqui e espero que tenham gostado do post.

Abracos, see ya!!

1 comentário em “Série DesignPattern: Singleton”

  1. Hello there, I think your blog could be having browser compatibility problems.
    When I take a look at your webb site in Safari, it looks
    fine however, when opening in Internet Explorer, it has some overlappoing issues.
    I merely wanted to give you a quick heads up! Other
    than that, excellent blog!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *