为了我自己的利益,我一直在为自己的小型框架工作,在学习新东西时不断回溯代码。正如你所期望的那样,我有一个几乎被其他所有对象使用的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