Java Singleton: Описание, Плюсы, Минусы

Java Singleton - это паттерн проектирования, который гарантирует, что в системе будет существовать только один экземпляр класса, и предоставляет глобальную точку доступа к нему.

Рекомендуется создать Singleton-класс в 3 шага:

1. Создание приватного статического экземпляра класса Singleton:

private static Singleton instance;

2. Приватный конструктор, который запрещает создание экземпляров вне класса:

private Singleton() {}

3. Предоставление глобальной точки доступа к единственному экземпляру класса через статический метод getInstance(). Если экземпляр еще не был создан, создать его:

public static Singleton getInstance() {

if (instance == null) {

instance = new Singleton();

}

return instance;

}

Одним из преимуществ Singleton-паттерна является то, что он обеспечивает единственную точку доступа к экземпляру класса, которая может быть использована для управления настройками и/или состоянием объекта. Более того, Singleton может использоваться для уменьшения количества ресурсов, потребляемых системой, так как объект создается только один раз.

Пример кода:

public class Singleton {

private static Singleton instance;

private Singleton() {}

public static Singleton getInstance() {

if(instance == null) {

instance = new Singleton();

}

return instance;

}

public void showMessage(){

System.out.println("Привет Мир!");

}

}

public class SingletonDemo {

public static void main(String[] args) {

Singleton object = Singleton.getInstance();

object.showMessage();

}

}

В этом примере объект Singleton создается при первом вызове метода getInstance(). Один и тот же объект будет использоваться при последующих вызовах метода getInstance(). Метод showMessage() выводит на консоль строку "Привет Мир!".

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

CLion: Интуитивная среда разработки для С++
Работа с JSON в языке программирования С
Сортировка массива: как это сделать быстро и правильно?
C Max Min: максимальная выгода и минимальные затраты
DateTime Now in Python: How to Get Current Time and Date
RTSP порт и его роль в вещании видео
Git Change Branch
Приватный релей Apple ID
<h1>PostgreSQL IF ELSE: Syntax and Examples
Dfff