Шаблон Singleton – это самый простой шаблон в java, который находится под шаблоном creational. некоторые ключевые моменты для использования в одноэлементном шаблоне.
- Она статична по своей природе
- частный конструктор
- частный статический экземпляр класса
- общедоступный статический метод получения
- никаких параметров для конструктора
создать одноэлементный класс
public class Singleton {
private static Singleton object = null;
private Singleton() {
}
public static Singleton getInstance() {
if (object == null) {
object = new Singleton();
}
return object;
}
public void showMessage() {
System.out.println("Singleton Pattern");
}
}
создать демонстрационный класс
public class Demo {
public static void main(String[] args) {
Singleton object = Singleton.getInstance();
object.showMessage();
}
}
но эта классическая реализация не является потокобезопасной. поэтому, используя synchronized, убедитесь, что один поток может выполнить getInstance(); одновременно. Как это;
public class Singleton {
private static Singleton object = null;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (object == null) {
object = new Singleton();
}
return object;
}
}
Оригинал: “https://dev.to/notitazone/singleton-pattern-2p23”