按照PHP manual,一類是這樣的:通過抽象關鍵字在PHP中的靜態類?
abstract class Example {}
不能被實例化。如果我需要沒有實例的課程,例如對於一個註冊表模式:
class Registry {}
// and later:
echo Registry::$someValue;
它會被認爲是一種很好的風格,只需將該類聲明爲抽象類?如果不是,與抽象類相比,隱藏構造函數作爲受保護方法的優點是什麼?
問題依據:就我所見,它可能會有一些特性濫用,因爲手冊更像抽象類,對於稍後的類具有實例化可能性的藍圖。
更新:首先,感謝所有的答案!但許多答案聽起來很相似:'你不能實例化一個抽象類,但是對於註冊表,爲什麼不使用單例模式?'
不幸的是,這或多或少是我的問題的重複。什麼是優勢使用單身模式(也稱爲隱藏__construct()
)相比,只聲明它abstract
,而不必擔心呢? (像,例如,它是開發商之間有很強的內涵,即abstract
類實際上不是使用左右。)
你能在我的帖子反映的一個,我想我已經提到了明顯的優勢。 – elias 2010-04-19 16:28:12
感謝您的所有答案!不幸的是,獎金的結局在相當繁忙的時間中下降了,所以我無法對答案做出反應,因爲他們應該得到答案。我終於接受了帕斯卡爾的回答,因爲這是第一次,而且在他編輯之後似乎也是最全面和最完整的。然而,我讀了所有並且學到了很多東西。 – Boldewyn 2010-04-21 06:35:29
我想知道是誰處理了所有的-1。謹慎解釋? – Boldewyn 2010-04-21 06:37:36