PHP manual göre, bu gibi bir sınıf:
abstract class Example {}
örneği olamaz. Örneğin ben olmadan bir sınıf gerekiyorsa, örneğin bir kayıt deseni için:
class Registry {}
// and later:
echo Registry::$someValue;
sadece soyut olarak sınıf bildirmek için iyi bir tarz olarak kabul edilebilir mi? Değilse, soyut sınıfına göre korumalı yöntem olarak kurucu gizleme avantajları nelerdir?
Rationale for asking: Bildiğim kadarıyla ben gördüğünüz gibi, elinden özellik kötüye biraz daha manuel olarak örnekleme imkanı ile daha sonra sınıfları için planları gibi soyut sınıflar anlamına gelir beri.
Update: Öncelikle, tüm cevaplar için teşekkürler! 'Sen bir soyut sınıf örneğini değil, ancak bir kayıt için, neden bir tek deseni kullanarak değil?' Fakat birçok cevaplar oldukça hem ses
Ne yazık ki, daha fazla veya daha az tam olarak sorumun bir tekrarı oldu. advantage bir singleton deseni sadece abstract
bildirerek ve bu konuda endişelenmenize gerek kalmadan karşılaştırıldığında (aka __construct()
gizleme) kullanarak nedir? (Gibi, örneğin, bu abstract
sınıfları aslında used ya da olmadığını, geliştiriciler arasında güçlü bir çağrışım.)