目前,我有一些类扩展了
Zend_Db_Table_Abstract
,用于处理每个类对应表的查询。当我需要从一个控制器访问5个这样的表时,我发现自己需要创建5个每个具体的
Zend_Db_Table
对象的新实例。这非常低效。我考虑过实现工厂模式来创建新实例(或提供现有静态副本),但不确定这是最好的方法。
确保速度而不消耗过多资源的正确方法是什么?这里应该使用惰性加载吗?
[编辑] 例如,我有一个类用于处理从原始搜索查询获取位置详细信息,并且需要这些对象以便解析查询:
// Initialize database object
$this->dbLocations = new Model_Locations;
$this->dbStates = new Model_States;
$this->dbZipcodes = new Model_Zipcodes;
$this->dbLookup = new Model_Lookup;
在另一个类中,我可能需要再次访问这些模型,因此我重复上述代码。本质上是重新初始化可能是静态/单例的对象。
$db->query('SELECT * FROM tide');
,而不是使用 Zend_Db_Table。这样只会留下一个对象。 - Adrian World