我正在查看一些我在过去2个月为Zend编写的代码,并且在初始化过程中发现了一些不一致(因为我是初学者)前端控制器。初始化前端控制器,这两个有什么区别
我看,有时我做这个
$frontController = Zend_Controller_Front::getInstance();
和其他时间我做这个
$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');
不知道我在想什么。我想我可能是下面的例子。任何人都知道这两者之间是否有真正的区别?
Zend中的前端控制器始终是单例。即使在使用应用程序引导程序时,资源也会使用'getInstance'调用它。参见'Zend_Application_Resource_Frontcontroller :: getFrontController'。 – netcoder 2010-11-09 13:54:52
@netcode,我明白这是一个单身人士。一个更清晰的方式来问我的问题是:单身人士需要被初始化,或者getInstance负责初始化实例,如果它是空的。 – jblue 2010-11-09 14:40:46
在这种情况下,'getInstance'负责初始化实例,如果它为空。但总的来说,并不一定。单例模式本身不定义实例是否必须在首次使用时自动初始化。但是,这样做的做法通常称为** lazy-loaded singleton **或** Initialization on Demand Holder **模式。 – netcoder 2010-11-09 14:53:05