PHP singletons genişletme

0 Cevap php

Ben bir web uygulaması çerçevesinde çalışıyorum ve bunun bir parçası her tekil olarak uygulanan hizmetleri bir dizi oluşur. Hepsi tekil davranış bu gibi bir şey arıyor, uygulanan bir hizmet sınıfı, genişletmek:

class Service {
    protected static $instance;

    public function Service() {
        if (isset(self::$instance)) {
            throw new Exception('Please use Service::getInstance.');
        }
    }

    public static function &getInstance() {
        if (empty(self::$instance)) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}

Ben varsa Şimdi, FileService adında bir sınıf bu gibi uygulanır:

class FileService extends Service {
    // Lots of neat stuff in here
}

... FileService :: getInstance (Ben istiyorum gibi), bir FileService örneği vermez, ama bir Servis örneği çağırarak. Ben burada sorunun Hizmet yapıcısı kullanılan "öz" anahtar kelime olduğunu varsayalım.

Ben burada ne istediğinizi elde etmek için başka bir yolu var mı? Tekiz kod sadece birkaç satır, ama yine de zaman elimden herhangi bir kod Redundance önlemek istiyorum.

0 Cevap