Domain driven design PHP存储库应该如何处理添加/删除/保存/删除实体?
由于一些混乱,我在实现存储库模式时遇到了一些问题 就我现在所知,存储库的行为应该类似于内存中的对象集合,因此如果我说:Domain driven design PHP存储库应该如何处理添加/删除/保存/删除实体?,domain-driven-design,repository-pattern,ddd-repositories,Domain Driven Design,Repository Pattern,Ddd Repositories,由于一些混乱,我在实现存储库模式时遇到了一些问题 就我现在所知,存储库的行为应该类似于内存中的对象集合,因此如果我说: $users = new UserRepository(new UserMapper); $users->findAll(); 用户存储库将加载并返回一组用户实体。现在,我可以使用它们来读取数据,也可以更新任何特定实体上的数据,并在存储库上调用save()方法,该方法将利用映射器将加载的实体保存回数据源,并应用更新 我想知道的是,这是否是一个正确的理解 add()方法应
$users = new UserRepository(new UserMapper);
$users->findAll();
用户存储库将加载并返回一组用户实体。现在,我可以使用它们来读取数据,也可以更新任何特定实体上的数据,并在存储库上调用save()方法,该方法将利用映射器将加载的实体保存回数据源,并应用更新
我想知道的是,这是否是一个正确的理解
add()方法应该直接向数据源添加实体,还是仅向存储库中的集合添加实体
对于remove()也是如此;此方法是从数据源中删除实体,还是仅从存储库中删除实体
混淆源于我在教程中看到的一些实现既有add()/remove()方法,也有save()/delete()方法。这是正确的方法吗?我已经使用DDD技术开发了大约6个月了,并且始终使用保存和删除方法,保存应该将数据持久化到持久化层,删除应该从持久化层删除 综上所述,没有理由不将其添加到您的收藏中 p、 让我们看看谷歌集团,有一个活跃的社区专门针对这些问题IDDD(实现域驱动设计)有一整章都是关于存储库的,特别考虑了存储库的接口和背后的合理因素。我强烈建议你阅读这一章,因为它直接适用于你的问题。