Php ile Singleton Design Pattern

By | 7 October 2016

Singleton, sık kullanılan ve basit bir tasarım desenlerinden biridir. Ne için kullanıyoruz; bir sınıfa ait tek instance oluşturma ve bunu her yerden erişebilir yapmaktır. Bunu DB Connection sınıfı yazarken örneklendirme yapacağım. Bunun yanında basit olması, öneminin az olduğu anlama gelmiyor. Tasarım desenlerinin içinde de en çok kullanılan yapıdır.

class DBConnection
{
    private static $instance;

    //static bir fonksiyon tanımlıyoruz.
    public static function getInstance()
    {
        if (!self::$instance) {
            self::$instance = new DBConnection();
        }
        return self::$instance;
    }
}

Şimdi de bağlantı sınıfını çalıştıracak php dosyasını oluşturalım.

require_once('/Users/mert/Documents/DBConnection.php');

//burada eğer daha önce DBConnection objesi oluşturulmuşsa yani
//Ramde bir kayıt altına alınmışsa direk oradan çağırıyor
//eğer yoksa ramde yeni bir obje oluşturuyor.
$dbConnection = DBConnection::getInstance();

DBConnection sınıfında If koşuluna girilmeden devam ederse, o anda demek ki bir instance oluşturulmuş olduğu anlaşılacak ve o oluşturulan instance’ı return edecektir. Diğer bir konu ise DBConnection sınıfını çalıştıran php dosyası da o an yeni bir instance mı yoksa önceden oluşturulmuş bir DBConnection objesi mi bunu bilmiyor. Dediğim gibi bir obje oluşturmaya izin veren bir yapı, bu sayede objenin gereksiz birden fazla kopyasının olma sorununu ortadan kaldırıyor. Bir sistemde bir nesne örneği olması gereken durumlarda kullanılır.

Leave a Reply

Your email address will not be published. Required fields are marked *

*