使用存储库模式时的传统类

时间:2017-03-22 20:28:12

标签: php laravel repository-pattern

我已经和laravel合作了几年了。我的传统方法是在app下有一个类文件夹,并将我的数据访问功能放在类中。保持控制器清洁,利用类来完成肮脏的工作。

最近一位同事发现了存储库,我一直在阅读它们并感到困惑。

利用存储库,我的应用程序/类/文件夹还有一个位置,传统的#34;班?是否有可能实现健康的平衡?当涉及到存储库设计模式时,是否有理由全力以赴?

最佳实践是否对此有所说明?

由于

1 个答案:

答案 0 :(得分:1)

设计模式的想法是将持久性逻辑(与数据库和/或缓存连接)与域模型分开。

基本上对对象"在内存中进行的任何更改"应该保留在传统的#34;类。存储库将从数据库中获取或更改数据,但如果有任何涉及业务逻辑的操作数据不涉及数据库的更改(无论是格式化数据还是对数据执行某些数学运算),您都可以将其保留在域类中。

最佳实践(特别是单一责任原则)鼓励将存储库或数据映射逻辑与可以使用对象数据封装的业务逻辑分离。