Sobes.tech
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() // Σφάλμα!