Sobes.tech
Junior — Middle

Πώς υλοποιείται η τεμπέλικη αρχικοποίηση του μοτίβου Singleton;

sobes.tech AI

Απάντηση από AI

Η αργή αρχικοποίηση του Singleton στη Java επιτρέπει τη δημιουργία ενός στιγμιότυπου της κλάσης μόνο κατά την πρώτη πρόσβαση, εξοικονομώντας πόρους. Ένας από τους πιο συνηθισμένους τρόπους είναι η χρήση μιας εσωτερικής στατικής κλάσης:

public class Singleton {
    private Singleton() {
        // ιδιωτικός κατασκευαστής
    }

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

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

Εδώ, η κλάση Holder φορτώνεται και αρχικοποιείται μόνο κατά την πρώτη κλήση της getInstance(), διασφαλίζοντας ασφάλεια νημάτων και lazy αρχικοποίηση χωρίς συγχρονισμό.