Шаблон Singleton в Java с примером: реализация потокобезопасного Singleton

Я предоставлю вам пример шаблона проектирования Singleton, реализованного на Java, а также несколько методов, обычно используемых при его реализации. Вот пример:

public class Singleton {
    private static Singleton instance;
    private Singleton() {
        // Private constructor to prevent instantiation from outside
    }
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
// Other methods of the Singleton class
    public void doSomething() {
        // Perform some operation
    }
    public String getSomeData() {
        // Retrieve some data
        return "Some data";
    }
}

В этом примере класс Singleton имеет частный конструктор, предотвращающий прямое создание экземпляров извне класса. Метод getInstance()предоставляет глобальную точку доступа к экземпляру Singleton. Он использует блокировку с двойной проверкой, чтобы обеспечить потокобезопасность и создавать экземпляр только при необходимости. Методы doSomething()и getSomeData()представляют дополнительную функциональность, которую может предоставить класс Singleton.