【发布时间】:2015-03-09 19:42:00
【问题描述】:
repository pattern 用于 MVC Web 应用程序框架的上下文中,以将特定的存储检索机制与控制器分离。
每当我最终使用这种模式时,每个唯一查询都会导致存储库类中的方法爆炸式增长。例如,在我之前链接的文章中,有 7 个:
- 收集所有问题
- 在我们的视图中为表单绑定创建一个简单的问题
- 抓住分页问题
- 创建和存储问题
- 按主键获取问题
- 使用主键和一些数组数据更新问题
- 按主键删除问题
我可以想象更多:
- 用答案抓住所有问题
- 抓住所有超过一定年龄没有答案的问题
- 抓住所有带有特定关键词的问题
- 抓取所有标记为垃圾邮件或已删除的问题
- 获取所有提出问题的用户
基本上,在这种模式下,每个唯一的 where 子句条件集都会有一个方法,因此这些方法与唯一查询是同构的。这是坏事吗?是否有更通用的模式可以应用来防止这种方法的爆炸式增长?
(12) 提出了一个相关问题 - 问题存储库是否应该泄露问题与用户之间的关系的详细信息?
【问题讨论】:
标签: design-patterns laravel orm repository