首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拥有太多存储库的域服务

拥有太多存储库的域服务
EN

Stack Overflow用户
提问于 2015-12-05 13:17:26
回答 1查看 397关注 0票数 4

我有4个相关实体:

区(id,名,市,zip_code)市(id,name,city)市(id,name,省)省(id,name)

我刚刚做了一个域服务来获取所有与Zip代码相关的数据。我需要找到与之相关的地区、市、市和省。所以我要为我注射这4种药物。我从每个存储库读取数据,将其格式化为(id,name),因为这是我从它们需要的所有数据。

我认为这违反了SRP,但是找不到更好的方法来做这件事。我已经读过立面服务重构了,但不要认为这适用于我的问题。

我的问题是: 1.我是否应该将所有这些实体合并到一个聚合中? 2.应该在哪里进行数据形成?其他更好的解决方案? 3.其他更好的解决方案吗?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-05 14:20:26

正如您所发现的,每个域实体都有一个存储库不能很好地扩展。它基本上忽略了实体之间的关系。

在ddd中,有一个聚合根(Ar)对象的概念,它基本上是一个具有关联子对象的主节点对象。不同的域上下文将有不同的ars。功能通常是围绕ars设计的,而不是单个实体。

因此,考虑拥有一个存储库支持给定的ar所需的内容。这意味着能够执行一个邮政编码查询,并返回一个由邮政编码根和附加区、城市等组成的ar。

要实现,您可能需要一个主对象,它包含所有单个实体数据库映射以及它们之间的关系。再说一次,关系才是重要的。每个存储库都可以访问完整的映射信息。

您没有提到一种语言,但是在php中,有一个遵循以下概念的对象关系管理器的示例:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34105343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档