soyut sınıf php soyut sınıfını genişletir?

2 Cevap php

Ben basit bir soyut veritabanı sınıfının üzerinde çalışıyorum. Bu sınıfın benim kullanımı, bazı örnek bir tekil olması için isteyeceksiniz. I not Bir tekiz, bir soyut sınıf olan düşünme, ve sonra başka bir soyut sınıf is bir tek içine uzatmak oldu. Bu mümkün mü? Önerilen?


Edit: Bir Bir tekiz dışında ben, hemen hemen aynı olan iki özetleri istiyorum. Yani tek fark biri diğer tüm fonksiyonlara sahip olacağıdır, ancak bir singleton gibi davranmasına diğer özellikleri ve yöntemleri vardır.

Ben değişiklik yapmak kadar bu için bir üs sınıf kod tabanı olmasını istiyorum, ben senkronize iki dosyaları tutmak zorunda değilsiniz.

2 Cevap

Ben şeyler şekilde, ben soyut bir singleton için faydası olduğuna inanıyorum. Bunun nedeni,

1) Ne bir tek olmak istiyorum bunu bir kütüphane, model, denetleyici veya görünümü ve DEĞİL soyut olurdu olmadığını uygulamasında kullanılmak üzere örneğini son sınıftır.

2) tekiz ekleme yöntemi kolay ve 8 satır yazılmış olabilir. Aşağıya bakın.

protected static $_instance;
public static function getInstance()
{
    if (!isset(self::$_instance)) {
        self::$_instance = new self();
    }
    self::$_instance;
}

3) sürümü aşağıdaki PHP 5.3 geç statik bağlama desteklemiyor. Bu yerine son sınıf onu miras ve beklendiği gibi zaten Gordon ve nuqqsa tarafından belirtildiği gibi, çalışmaz ve soyut sınıf başlatmasını neden olacaktır. Yani, geriye doğru uyumluluk için, daha iyi önlemek.

Tekiz desen uygulaması iki gereksinimleri karşılamak gerekir:

  1. Bu bir sınıf nesnesi yaratmadan tekil sınıf örneğine erişmek için bir mekanizmaya sahip olmalıdır
  2. Kereden fazla örneği değil böylece tek nesne ısrar gerekir

Sürece olması sağlanır gibi, varyasyonların birden fazla vardır. Bu neye ihtiyacınız varsa başka bir soyut uzanan sınıf soyut yapma ile yanlış bir şey, yok. @ Gordon dediği gibi ANCAK, statik yöntemler / özelliklerini geçersiz PHP