Sobes.tech
Junior — Middle

Jak zaimplementować wzorzec Singleton w języku Java?

sobes.tech AI

Odpowiedź od AI

Wzorzec Singleton gwarantuje, że klasa ma tylko jedną instancję i zapewnia do niej globalny punkt dostępu.

W Javie można to zaimplementować na kilka sposobów. Jedną z prostych i bezpiecznych dla wątków opcji jest użycie leniwej inicjalizacji z słowem kluczowym synchronized lub użycie statycznej klasy wewnętrznej.

Przykład z użyciem statycznej klasy wewnętrznej:

public class Singleton {
    private Singleton() {
        // prywatny konstruktor
    }

    private static class Holder {
        private static final Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
        return Holder.INSTANCE;
    }
}

Takie podejście gwarantuje, że instancja zostanie utworzona tylko przy pierwszym wywołaniu getInstance(), i jest bezpieczne dla wątków bez użycia synchronized.