Skip to content

Instantly share code, notes, and snippets.

@thinkphp
Last active July 6, 2026 15:40
Show Gist options
  • Select an option

  • Save thinkphp/303b6283bd4ae469f3c1175615386b72 to your computer and use it in GitHub Desktop.

Select an option

Save thinkphp/303b6283bd4ae469f3c1175615386b72 to your computer and use it in GitHub Desktop.
Singleton Design Pattern
//Baza de date ----
class Singleton {
private static Singleton instance; //singura instanta
private Singleton() { //constructor PRIVATE - nu poate fi apelat din afara
System.out.println("Instanta a fost creata!");
}
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
void showMessage() {
System.out.println("Hello from Singleton!!!");
}
}
public class MainSingle {
public static void main(String[] args) {
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
obj1.showMessage();
obj2.showMessage();
System.out.println(obj1 == obj2); //TRUE -aceeasi instance
}
}
/*
Ideea de baza a Singleton:
- Singleton rezolva o singura problema, raspunde la intrebarea:
Cum ma asigur ca dintr-o clasa exista exact o singura instanta in toata aplicatia si oricine are nevoie de ea primeste aceeasi instanta?"
De ce avem nevoie?
- nu are sens de mai multe ori sa avem conexiuni la o baza de date
- ai nevoie de o singura conexiuni la baza de date, iti creezi propria conexiune;
un singur logger- daca vrei ca toate datele de log sa treaca prin acelasi obiect , atunci folosesti singleton
- o singura configurare globala
C language -
Singleton = un singur obiect, accesibil pentru tot , GARANTAT
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment