[英]PHP design patterns Factories, Repositories and…?
我们有工厂来创建复杂的对象。 (对于makin'的东西)
我们有存储库来查找它们。 (对于findin'的东西)
我们有什么更新它们? (对于改变的东西)
好像拼图中缺少一块? 我不认为它属于存储库,因为它打破了单一的责任......
更新实体(以及数据库)属于存储库。 存储库本身是数据库本身和程序之间的一个层。
因此,每个数据库操作都属于存储库。 此外,存储库不得与数据库通信,也可以使用XML,CSV或API作为数据源。 但这并不重要,因为您正在与存储库进行通信。 存储库处理随后发生的所有事情。
你可以用另一个更改存储库,你的程序可以正常工作,因为存储库都实现了相同的接口。 你不再喜欢那个MySQL数据库了,老式的CSV好多了? 只需替换使用过的存储库就可以了。
查找具有存储库的条目只不过是一个SELECT
语句,那么为什么不用它来UPDATE
或DELETE
它?
进一步阅读MSDN
在web.archive.org上找到了很好的解释和示例
我认为这取决于方法。
以DDD为例,你说的是真的。 存储库应该负责添加,查找和删除,因为它适用于集合,但是有一个问题,为什么它应该能够更新单个对象。
可以做些什么? 我想我只会复制其他人所说的内容,所以我只想发布链接来回答: 从存储库中删除保存/更新的方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.