我一直使用PHP的一個註冊表對象的Singleton類。由於所有的Singleton類我認爲主要的方法是這樣的:PHP靜態類和單例類之間的確切區別是什麼
class registry
{
public static function singleton()
{
if(!isset(self::$instance))
{
self::$instance = new registry();
}
return self::$instance;
}
public function doSomething()
{
echo 'something';
}
}
所以每當我需要註冊表類的東西,我用這樣的功能:
registry::singleton()->doSomethine();
現在我不明白是什麼區別在於創建一個正常的靜態函數。如果我只是使用普通的靜態類,它會創建一個新的對象嗎?
class registry
{
public static function doSomething()
{
echo 'something';
}
}
現在我可以只使用:
registry::doSomethine();
有人能向我解釋的功能是單例類的東西。我真的不明白這一點。
[靜態類和單例模式之間的區別?](http://stackoverflow.com/questions/519520/difference-between-static-class-and-singleton-pattern) – Sarfraz 2010-05-17 14:08:10
哎呀!對不起,我還沒有看到那一個。 – 2010-05-17 14:10:33