我正在查看一些我在過去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