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 αρχικοποίηση χωρίς συγχρονισμό.