Hoje venho rapidamente mostrar um recurso que descobri recentemente para criar um objeto global em Java. Um objeto que possa ser declarado em uma determinada classe do programa e reaproveitado em outras classes do mesmo projeto, utilizando para isso o recurso static.
Assim, se quisermos reutilizar um objeto A em uma classe diferente, declaramos um objeto qualquer B e fazemos o objeto B receber o conteúdo de A através do método getInstance(). Se A ainda não tiver sido declarado, simplesmente o criamos.
Observe que em momento algum criamos um novo objeto B, de modo que sua declaração funciona de modo similar ao tipo ponteiro da linguagem C.
Abaixo, temos um exemplo ilustrativo:
public class Sessao {
// Variável estática que conterá a instancia da classe
private static Sessao instance;
// Construtor privado (suprime o construtor público padrão).
private Sessao() {}
// Método público estático de acesso único ao objeto!
public static Sessao getInstance() {
if (instance == null)
instance = new Sessao();
return instance;
}
/*
Pode criar outros métodos que precise aqui, como getters e setters.
*/
}
Sessao sessao = Sessao.getInstance(); // Aqui popula os atributos da sessão que você irá utilizar
Assim, o objeto sessao receberá o conteúdo do objeto instance, da classe Sessao. Poderíamos fazer:
Sessao sessaoA = Sessao.getInstance();
Sessao sessaoB = Sessao.getInstance();
Sessao sessaoC = Sessao.getInstance();
De modo que todos os objetos sessaoA, sessaoB e sessaoC se referem na verdade ao mesmo objeto estático, como faria um ponteiro. Note que poderíamos criar um objeto de Sessao diferente simplesmente fazendo:
Sessao sessao = new Sessao();
Esse conceito parece bem bobinho, mas é uma solução genial para grandes projetos, como por exemplo o Jogo Bizuca.
Referência:
http://pt.stackoverflow.com/questions/54588/como-criar-manter-variavel-global-em-java-para-login
Nenhum comentário:
Postar um comentário