Skip to content

Instantly share code, notes, and snippets.

@dheysonalves
Last active August 20, 2018 18:23
Show Gist options
  • Save dheysonalves/4339c62f252e0112c907d517a6eb6218 to your computer and use it in GitHub Desktop.
Save dheysonalves/4339c62f252e0112c907d517a6eb6218 to your computer and use it in GitHub Desktop.
singletonmod
package singletone;
// **** o código aqui não utiliza do padrão de projeto, apenas uma forma de implementação sem ele. ****
// a ideia geral é ter uma intância de apenas uma classe e dar acesso global para ela.
public class Singleton {
private String name,color;
private double feet;
public Singleton(String name,double feet,String color) {
super();
this.name = name;
this.feet = feet;
this.color = color;
}
public Singleton() {}
public void setName(String name) {
this.name = name;
}
// Public: ações
public void Miar() { System.out.println("Miando"); }
public void Comer() { System.out.println("Comendo"); }
public void Correr() { System.out.println("Correndo"); }
public void Dormir() { System.out.println("Dormindo"); }
@Override
public String toString() {
return "Class1 [name=" + name + ", feet="+ feet +"]";
}
}
public class CatDo {
private static void catTest(String name, Singleton class1) { // apenas pode ser instânciada pela própria classe
String newname = "Leb";
name = newname;
class1 = new Singleton(name,4.2,"white");
//class1.setName(newname);
}
public static void main(String[] args) {
Singleton class1 = new Singleton("Bob",2.2,"yellow"); // instância principal
String name = "Gato";
System.out.println("[Original]\n");
System.out.println("Nome atual: "+name);
System.out.println(class1);
class1.Miar();
class1.Dormir();
System.out.println("\n[Alterado]");
catTest(name,class1); // chama a classe que cria uma nova instância, mas referência apenas uma na memória
System.out.println("Novo nome: "+name);
System.out.println(class1);
class1.Comer();
class1.Correr();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment