Dzisiaj12 czerwca, 2021

Wzorzec Singleton

Zgodnie z założeniem wzorca Singleton można utworzyć tylko jeden obiekt dla danej klasy, z którego możemy skorzystać w dowolnym miejscu programu. Poniżej moja graficzna interpretacja:

Podczas użycia wzorca Singleton, obiekt zostaje stworzony wtedy kiedy jest potrzebny (tzw. późne ładowanie). Kolejne odwołania zwrócą ten sam obiekt. Najważniejszą cechą tego wzorca jest ograniczenie tworzenie obiektów (maksymalnie możemy utworzyć jeden obiekt). Dokonuje się tego poprzez zdefiniowanie konstruktora jako prywatnego i napisanie metody statycznej, która utworzy obiekt gdy istnieje lub zwróci referencję do istniejącego egzemplarza (prezentuje to moja powyższa interpretacja). Dobrym przykładem użycia wzorca jest połączenie z bazą danych:

<?php

class Database extends PDO
{
    private static $_instance = null;
    
    private function __construct()
    {
        parent::__construct(DB_DSN, DB_USER, DB_PASS);
    }
    public static function getInstance()
    {
        if( !(self::$_instance instanceOf Database)) {
            self::$_instance = new Database();
        }
        return self::$_instance;
    }
}

Jako, że używamy metody statycznej, możemy skorzystać z niej w dowolnym fragmencie kodu.

Udostępnij artykuł
guest
0 komentarzy
Inline Feedbacks
View all comments