Junior — Middle
Πότε συμβαίνει η δημιουργία του Singleton;
sobes.tech AI
Απάντηση από AI
Η δημιουργία ενός αντικειμένου του μοτίβου Singleton συμβαίνει τη στιγμή της πρώτης πρόσβασης σε αυτό, εάν χρησιμοποιείται η αργή (lazy) μέθοδος αρχικοποίησης.
Δηλαδή, το αντικείμενο δημιουργείται κατά την πρώτη κλήση της μεθόδου που επιστρέφει το Singleton, π.χ., getInstance(). Αυτό επιτρέπει να καθυστερήσει η δημιουργία του αντικειμένου μέχρι να χρειαστεί, εξοικονομώντας πόρους.
Παράδειγμα αργής αρχικοποίησης Singleton σε Android/Java:
public class Singleton {
private static Singleton instance;
private Singleton() {
// ιδιωτικός κατασκευαστής
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
Αντίθετα, αν χρησιμοποιείται η αρχικοποίηση κατά τη φόρτωση της κλάσης (eager initialization), τότε το αντικείμενο δημιουργείται αμέσως κατά τη φόρτωση της κλάσης, πριν από την πρώτη πρόσβαση.