优点:
>存储库隐藏复杂查询.
>存储库方法可以用作事务边界.
> ORM很容易被嘲笑
缺点:
> ORM框架已经提供了一些集合,如持久化对象的接口,存储库的意图是什么.因此,存储库为系统增加了额外的复杂性.
>组合爆炸时使用findBy方法.可以使用Criteria对象,查询或示例对象来避免这些方法.但是要做到这一点,不需要存储库,因为ORM已经支持这些方法来查找对象.
>由于存储库是聚集根(在DDD意义上)的集合,所以必须创建和传递聚合根,即使只修改了一个子对象.
问题:
你知道什么利弊?
>你会建议使用存储库吗? (为什么或者为什么不?)
存储库的关键点(如单一责任原则)是抽象获取具有身份的对象的概念.当我变得更加舒适的DDD,我没有发现有用的思考仓库主要集中在数据持久性,而是作为实例化对象和坚持他们的身份的工厂.
当您使用ORM时,您应该以尽可能有限的方式使用他们的API,给自己一个可能是具体领域的立面.所以不管您的域名仍然会看到一个存储库.另一方面有一个ORM的事实是一个“实现细节”.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。