我有一個關於php前端控制器實現的「概念」問題。沒有singleton的PHP前端控制器實現:概念性問題
我所見過的大部分前端控制器都是用Singleton實現的,我不是單身模式的忠實粉絲,我創建了一個具有靜態屬性的容器,它將存儲前端控制器的一個單一實例。
隨着單身,我不得不把初始化代碼構造(或由構造調用方法)內:與容器
$fc = FrontController::getInstance();
我可以把配置FrontController設計之外,這是我的目標,我仍然有一個簡單的方法來檢索FrontController。
$fc = Container->getFrontController();
此代碼看起來更清潔,我可以得到乾淨的子類而不關心父構造函數。
這在'bootstrap'時候是完全一樣的,但實際上與我以前的實現不同的是,現在我可以在應用程序中的任何位置(在DAO內部或Action內部)創建FrontController,因爲構造器是no更長的私人/保護。
我的問題是: 它是一個「壞習慣」,送給我的課的用戶在該應用的任何創造FrontController實例的可能性?我會寫文檔,並提供其他類的容器,但我仍然想知道我是否應該防止奇怪的用途。
感謝您分享您的想法,現在我意識到frontcontroller可能是幾個項目應該是唯一的一個。即使我將前端控制器作爲單例實現,我仍然可以編寫getFrontController()方法:)我只是希望它在測試過程中不會造成麻煩。 – fatmatto 2011-04-10 00:24:50