Singleton

Návrhový vzor singleton patří do základní výbavy každého programátora. Jeho podstatou je vytvoření pouze jedné instance bezestavového objektu, která se používá napříč celou aplikací. Díky tomu, že je značná část tříd z principu bezestavová (data access objecty, service objekty atp.), se dá tímto způsobem ušetřit značné množství paměti.

Kód

/**
 * Singleton, ktery se zinicializuje pri nacteni tridy
 * @author Pavel Micka
 */
class EagerSingleton{
    /**
     * Staticka promenna zajisti EAGER inicilizaci (pri nacteni tridy)
     */
    public static final EagerSingleton SELF = new EagerSingleton();
    /**
     * Skryty konstuktor => Nelze tvorit dalsi instance
     */
    private EagerSingleton(){}
    /**
     * Testovaci metoda
     */
    public void foo(){
        System.out.println("foo");
    }
}
/**
 * Singleton s on-demand inicializaci
 * @author Pavel Micka
 */
class LazySingleton{
    /**
     * Samotny objekt
     */
    private static LazySingleton self;
    /**
     * Skryty konstuktor => Nelze tvorit dalsi instance
     */
    private LazySingleton(){};
    /**
     * Lazy inicializace singletonu (az pri prvnim pozadavku), metoda
     * musi byt synchronizovana (aby byla zajistena bezpecnost pristupu
     * vice vlaken)
     * @return singleton
     */
    public static synchronized LazySingleton getInstance(){
        if(self == null){
            self = new LazySingleton();
        }
        return self;
    }
    /**
     * Testovaci metoda
     */
    public void foo(){
        System.out.println("foo");
    }
}

Literatura

  • PECINOVSKÝ, Rudolf. Návrhové vzory. 1. vyd. [s.l.] : Computer press, 2007. 527 s. ISBN 978-80-2511582-4.
Hodnocení (0): 0

Přečtěte si také

Diskuse





Článek zatím nemá žádné komentáře.