Estou tentando aprender o padrões de projeto, estou com problemas com o padrão Singleton, tenho as seguintes classes Presidencia e a SingletonPrincipal
Onde a classe Presidencia seria a implementação do Singleton.
public class Presidencia {
private volatile static Presidencia uniqueintance;
private String nomePresidente;
private Presidencia() {}
public void setnomepresidente(String nomePresidente){
this.nomePresidente = nomePresidente;
}
public String getNomePresidente(){
return nomePresidente;
}
public static Presidencia getIntance(){
if(uniqueintance == null){
uniqueintance = new Presidencia();
}
return uniqueintance;
}
}
A outra classe seria meu main()
package br.edu.utfpr.aplicacao;
import br.edu.utfpr.patterns.singleton.Presidencia;
public class SingletonPrincipal {
public static void main(String[] args) {
Presidencia p1 = Presidencia.getIntance();
p1.setnomepresidente("Juscelino Kubitschek");
System.out.println("Presidente " + p1.getNomePresidente());
Presidencia p2 = Presidencia.getIntance();
p2.setnomepresidente("Fernando");
System.out.println("Presidente p2 " + p2.getNomePresidente());
System.out.println("Presidente p1 " + p1.getNomePresidente());
}
}
O meu problema é na hora de imprimir isso, tipo o objeto do tipo p2, ta substituindo o objeto do tipo p1.
Se alguem puder me ajudar, desse já agradeço.