Sobes.tech
Junior

Mis on Singleton muster?

sobes.tech AI

Vastus AI-lt

Singleton on loomise muster, mis tagab, et klassil on ainult üks eksemplar ning pakub sellele globaalse juurdepääsu. Kasutatakse, kui on vaja ühtset objekti ühise ressursi või oleku haldamiseks.

Tööpõhimõte:

  1. Privaatne konstruktor, et keelata uute eksemplaride loomine new abil.
  2. Privaatne staatiline väli, mis hoiab ainukese eksemplari.
  3. Avalik staatiline meetod, mis võimaldab juurdepääsu eksemplarile:
    • Kontrollib, kas eksemplar on juba loodud.
    • Kui ei, loob selle ja salvestab staatilisse välja.
    • Tagastab loodud või olemasoleva eksemplari.

Näide Java keeles:

public class Singleton {
    // Privaatne staatiline väli eksemplarile
    private static Singleton instance;

    // Privaatne konstruktor
    private Singleton() {
        // Initsialiseerimine, kui vajalik
    }

    // Avalik staatiline meetod eksemplari saamiseks
    public static Singleton getInstance() {
        // Laisk initsialiseerimine null kontrolliga
        if (instance == null) {
            // Sünkroniseerimine mitme lõime turvalisuse tagamiseks
            synchronized (Singleton.class) {
                // Topeltkontroll nulli jaoks
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

    // Singletoni äriloogika
    public void doSomething() {
        System.out.println("Singleton instance is doing something.");
    }
}

Rakendamine QA automatiseerimises:

  • Testi konfiguratsiooniseadete haldamine (omadusfailid, keskkonnamuutujad).
  • Üks WebDriver eksemplar kõigi testide jaoks.
  • Logide või aruannete haldur.
  • Andmebaasi ühenduste pott.

Eelised:

  • Tagab, et on ainult üks eksemplar.
  • Mugav juurdepääsupunkt.
  • Laisk initsialiseerimine (loon ainult esimese nõudmise korral).

Miinused:

  • Võib varjata sõltuvusi.
  • Raskendab modulaarset testimist, kuna singleton on globaalne seisund.
  • Rikkub ühe vastutuse põhimõtet.
  • Võivad tekkida mitme lõimega töötamise probleemid, kui seda ei rakendata õigesti.