Шаблон 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”