Sobes.tech
Junior

Mis on singleton?

sobes.tech AI

Vastus AI-lt

Singleton on loomise muster, mis tagab, et klassil on ainult üks eksemplar ning pakub sellele globaalse juurdepääsu punkti.

Eelised:

  • Kontroll ühe eksemplari üle.
  • Globaalne juurdepääsupunkt.
  • Hoolikas initsialiseerimine (kui see on rakendatud).

Miinused:

  • Rikkub üksuse vastutuse põhimõtet.
  • Raskendab testimist.
  • Võib põhjustada probleeme mitme niidiga keskkondades ilma sünkroniseerimiseta.

Tüüpiline rakendus Swiftis:

class Singleton {  
    // Staatiline konstant, mis hoiab ainukese eksemplari
    static let shared = Singleton()  

    // Privaatne konstruktor, et vältida teiste eksemplaride loomist
    private init() {  
        // Täiendav konfiguratsioon, kui vajalik  
        print("Singletoni eksemplar loodud")  
    }  

    // Näide singleton meetodist  
    func doSomething() {  
        print("Singleton teeb midagi")  
    }  
}  

Kasutus:

// Ainuüksi eksemplarile juurdepääs läbi staatilise omaduse
let instance = Singleton.shared  
instance.doSomething()  
  
// Katse luua teine eksemplar põhjustab kompileerimisvea
// let anotherInstance = Singleton() // Viga!