Singleton

Definice:

Návrhový vzor Singleton je pojmenování pro takovou třídu, ze které má existovat nanejvíš jedna jediná instance objektu třídy. K této instanci nám pak Singleton poskytne globální přístupový bod.

Implementace

Pro implementaci tohoto návrhového vzoru je vždy nutné zajistit následující čtyři kroky:

  1. Definovat statický atribut, který obsahuje instanci objektu třídy.

  2. Implementovat statickou metodu, která vrací objekt z bodu 1 a v případě, že neexistuje, jej vytvoří.

  3. Zabránit vytvoření nové instance pomocí operátoru new. V mnoha jazycích stačí konstruktor deklarovat jako protected nebo private.

  4. Zajistit, aby objekt třídy nemohl být klonovaný, k čemuž stačí metodu __clone() deklarovat jako private.

Použití

Často se používá při poskytování centrálního přístupového bodu ke konfiguraci aplikace. Nebo se využívá pro přístup k externím zdrojům, jako například databáze.

Příklad v C#

sealed class Singleton {
    private Singleton() { }

    private static Singleton _Singleton = null;

    public static Singleton Instance
    {
        get
        {
            if (_Singleton == null) _Singleton = new Singleton();
            return _Singleton;
        }
    }

    .... následují další nestatické metody...
}

Související