我正在为我的开源项目开发一个“胖模型” ,并且我正在研究位于 ORM (RedBeanPHP) 和控制器之间的层。
我将有一个User
类,可能还有一个UserFactory
/UserMapper
类,它可以构造User
对象,以及执行诸如usernameExists
等元操作。
许多其他 SO 问题/博客文章指出,如果我需要检索对象集合,User
那么让我的UserMapper
类遍历结果集并构建n 个 User
对象将是低效的。
我的想法是创建一个UserCollection
实现 PHP 类的ArrayObject
类。 UserMapper
将能够创建一个UserCollection
在内部存储原始结果集的多维数组。然后我可以实现ArrayObject
的迭代器函数[]
等来User
按需构造相应的对象。
这是一个聪明的方法吗?在采用这种方法之前,我需要考虑什么?