Singleton: паттерн проектирования для создания уникального экземпляра класса

Синглтон – это паттерн проектирования, который используется для создания класса, у которого может быть только один экземпляр. Он предоставляет доступ к этому экземпляру через глобальную точку доступа.

Существует множество ситуаций, когда мы хотим, чтобы у класса было только одно экземпляр, например, когда нам нужно обеспечить глобальный доступ к ресурсам (например, базе данных) или когда нам нужно обеспечить, чтобы класс был состоянием, общим для всего приложения.

Для реализации синглтона мы можем использовать статическую переменную и статический метод в классе. При первом вызове метода, который получает экземпляр синглтона, он проверяет, существует ли уже экземпляр класса. Если экземпляр еще не создан, он создается. Во всех последующих вызовах метода будем возвращать уже созданный экземпляр синглтона.


public class Singleton {
    private static Singleton instance;

    private Singleton() {
        // приватный конструктор, чтобы предотвратить создание экземпляров класса вне класса
    }

    public static synchronized Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }

    public void showMessage() {
        System.out.println("Привет, я синглтон!");
    }
}

В данном примере у класса Singleton есть приватная статическая переменная instance, которая хранит единственный экземпляр класса. Публичный статический метод getInstance() проверяет, существует ли экземпляр. Если экземпляр еще не создан, создается новый экземпляр. Метод showMessage() просто выводит сообщение на консоль.

Давайте рассмотрим пример использования синглтона:


public class Main {
    public static void main(String[] args) {
        Singleton singleton = Singleton.getInstance();
        singleton.showMessage();
    }
}

В данном примере мы получаем экземпляр синглтона с помощью метода getInstance() и вызываем метод showMessage() у этого экземпляра. Результат выполнения программы будет:

Привет, я синглтон!

Таким образом, паттерн синглтон обеспечивает, что у класса есть только один экземпляр, который можно получить через глобальную точку доступа. Это полезно во многих случаях, когда мы хотим обеспечить уникальность экземпляра класса и глобальный доступ к нему.

Похожие вопросы на: "singleton "

Web приложение "Outlook": управляйте своей электронной почтой эффективно и удобно
Перевод слова "several" на русский язык
PSQL команды: полное руководство для начинающих
429 too many requests - Ошибка слишком много запросов
Тема 2C: важные аспекты и особенности
MSXML: обзор и применение библиотеки для работы с XML
Full join - объединение таблиц в базе данных
Google Image Search
Доклинк: что это такое и как использовать его для улучшения SEO
Жидкое мыло: лучший выбор для вашей кожи