Junior
Τι είναι ένα singleton;
sobes.tech AI
Απάντηση από AI
Το Singleton είναι ένα δημιουργικό μοτίβο σχεδίασης που εγγυάται ότι μια κλάση έχει μόνο ένα στιγμιότυπο και παρέχει ένα παγκόσμιο σημείο πρόσβασης σε αυτό.
Πλεονεκτήματα:
- Έλεγχος πάνω στο μόνο στιγμιότυπο.
- Παγκόσμιο σημείο πρόσβασης.
- Αργή αρχικοποίηση (αν υλοποιείται).
Μειονεκτήματα:
- Παραβίαση της αρχής της μοναδικής ευθύνης.
- Δυσκολεύει τις δοκιμές.
- Μπορεί να δημιουργήσει προβλήματα σε περιβάλλοντα πολλαπλών νημάτων χωρίς συγχρονισμό.
Τυπική υλοποίηση σε Swift:
class Singleton {
// Σταθερή στατική για την αποθήκευση της μοναδικής στιγμιότυπης
static let shared = Singleton()
// Ιδιωτικός κατασκευαστής για την αποτροπή δημιουργίας άλλων στιγμιότυπων
private init() {
// Επιπλέον ρύθμιση, αν απαιτείται
print("Δημιουργήθηκε η στιγμιότυπο Singleton")
}
// Παράδειγμα μεθόδου singleton
func doSomething() {
print("Το Singleton κάνει κάτι")
}
}
Χρήση:
// Πρόσβαση στο μόνο στιγμιότυπο μέσω της στατικής ιδιότητας
let instance = Singleton.shared
instance.doSomething()
// Η προσπάθεια δημιουργίας άλλου στιγμιότυπου θα προκαλέσει σφάλμα μεταγλώττισης
// let anotherInstance = Singleton() // Σφάλμα!