我發現自己在我的代碼爲「高速緩存」所做的工作實例我Zend_Db_Table
模型時,這樣做:Zend框架 - 數據庫表辛格爾頓
if (Zend_Registry::isRegistered('x_table')) {
$x_table = Zend_Registry::get('x_table');
} else {
$x_table = new Default_Model_DbTable_X;
Zend_Registry::set('x_table', $x_table);
}
令我很煩惱,這種方法不是很乾,今天我明白了單身模式可能是更好的方式來做到這一點。問題是,我從來沒有寫過一個單獨的課程。當我做了一些網絡搜索時,我發現了一些關於Zend_Db_Table
單身的非正式評論,但沒有真實的例子。
我已經配置了元數據緩存。
- 如何使我的
Zend_Db_Table
模型單身? - 有缺陷或缺點嗎?
編輯:我的思考能力單身的原因是,答案是,我認爲我可以簡單地具有下列電話在我的代碼$x_table = new Default_Model_DbTable_X;
,如果它存在的單個實例將被返回。如果這是可能的,我寧願這個解決方案。
你在你的代碼中做了什麼,你需要在相同的請求中實例化同一個表的多個實例? – Gordon 2010-04-14 22:14:20
*(參考)* http://sourcemaking.com/design_patterns/singleton – Gordon 2010-04-14 22:17:59
我正在構建一個CMS並且這些表格包含內容。內容塊可以放在一個頁面中,並且頁面中可能有多個相同類型的塊。感謝您的參考! – Sonny 2010-04-14 22:56:02