可能对于某些域逻辑实现实体需要访问存储库以更新/删除自身或任何相关实体。这听起来对吗?
不,不是,至少对于标有 的问题“领域驱动设计”标签。
当然,Active Record 模式有权在某些系统中生存,并且有些人发现强耦合很有用,但在 DDD 中,建议的方法是显式使用存储库:
埃文斯 DDD,第 152 页:对于需要全局访问的每种类型的对象,创建一个可以提供该类型所有对象的内存集合的幻觉的对象。 «...» 仅为实际需要直接访问的聚合根提供存储库。让客户专注于模型,委托所有对象存储和对存储库的访问。
因此,在 DDD 中,存储库不仅封装了访问数据库所需的基础设施代码,还封装了必须存储和加载对象的整个思想。
如果您正在执行一些涉及从数据库保存和加载的复合操作,那么services引用了存储库是最好的候选人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)