爲了我自己的利益,我一直在爲自己的小型框架工作,在學習新東西時不斷回溯代碼。正如你所期望的那樣,我有一個幾乎被其他所有對象使用的Registry對象。與Singleton交互的最有效方式是什麼?
目前,最基本的對象(AFObject)設置有點像這樣
absract class AFObject {
var $_registry;
function __construct(){
$this->_registry = AFRegistry::getInstance();
}
}
所以每一個對象現在將包含一個本地引用到註冊表。所以如果我有一百個實例化的對象,那就是數百個對單例的引用。然而這是或多或少效率總是請參閱註冊表直接像這樣...
class AFRouter extends AFObject {
function someMethod($bar){
AFRegistry::$foo = $bar;
}
}
你應該在php 5中使用public,protected或private來代替var關鍵字。 – 2009-07-26 10:20:02