Sobes.tech
Junior — Middle

Come si può assicurare che un'istanza di un oggetto venga creata solo una volta durante l'esecuzione del programma?

sobes.tech AI

Risposta dell'AI

Чтобы гарантировать, что экземпляр объекта создается только один раз во время выполнения программы, можно использовать паттерн Singleton.

Основные способы проверки:

  • Реализация Singleton: класс контролирует создание своего экземпляра, предоставляя статический метод для доступа к нему.
  • Тестирование: можно написать тест, который вызывает создание объекта несколько раз и проверяет, что все ссылки указывают на один и тот же объект.

Пример на Java:

public class Singleton {
    private static Singleton instance;

    private Singleton() { }

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

В тесте можно проверить:

Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
assert s1 == s2; // Проверка, что ссылки указывают на один объект

Таким образом, убеждаются, что объект создается единожды.