getSingleton最终也是返回一个Mage_Core_Model_Abstract子类对象,但是其和getModel函数最大的区别是 永远只生成一个对象,并将生成的对象通过Mage::registry函数注册到magento系统当中,再次执行getSingleton时获取到上一 次生成的对象。 我们通过以下的系统源代码可以清楚的看到其和getModel函数的区别。
/**
* Retrieve model object singleton
* @param string $modelClass
* @param array $arguments
* @return Mage_Core_Model_Abstract
*/
public static function getSingleton($modelClass='', array $arguments=array())
{
$registryKey = '_singleton/'.$modelClass;
if (!self::registry($registryKey)) {
self::register($registryKey, self::getModel($modelClass, $arguments));
}
return self::registry($registryKey);
}
本文解析了Magento中getSingleton函数的工作原理,该函数用于确保系统中特定类的实例唯一性。通过注册和检索对象的方式,实现对同一类实例的重复请求返回同一个对象。
1259

被折叠的 条评论
为什么被折叠?



