我发现自己在代码中这样做是为了“缓存”实例化Zend_Db_Table
模型时所做的工作:
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;
并且如果存在单个实例,它将被返回。如果这是可能的,我更喜欢那个解决方案。