Singleton

Definice:

Návrhový vzor Singleton popisuje implementaci třídy, ze které existovat nanejvíš jedna instance. K této instanci nám Singleton poskytne globální přístupový bod.

Implementace

Pro implementaci tohoto návrhového vzoru jsou vždy nutné 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 tak, že bude konstruktor deklarovaný 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í