Singleton Pattern
Pros
- Ensures only one instance of the class exists
- Gives global access to the single instance
- Can use lazy initialization
Cons
- More to think about when using multiple threads
- Easy to use incorrectly
Example Explanation

class Main {
public static void main(String[] args) {
Singleton test = Singleton.getInstance();
Singleton testTwo = Singleton.getInstance();
test.setName( "Joe ");
System.out.println(testTwo.getName()); //Joe
}
}
class Singleton{
private static Singleton instance;
private static String name = "";
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
synchronized (Singleton.class) {
instance = new Singleton();
}
}
return instance;
}
public static String getName(){ return name; }
public static void setName(String newName){ name = newName; }
}
Extra Resources
https://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-examples