我有一个相当简单的域,确定了大约 7-8 个主要实体,这些可能是它们自己的聚合根。但是会有一个 UI 屏幕列出系统中所有对象的联合,这意味着所有聚合的联合。
我想到的一种方法是使用组合,即所有其他聚合根引用的元数据聚合,这将是一个独立的实体。所以对于这个屏幕,我可以查询这个聚合,我移动到这个新聚合的字段是需要在我的“所有对象”网格中显示的公共字段。
另一种方法可能是使用应用程序服务方法,通过查询其他存储库并在应用程序层合并列表并处理分页等,为“所有对象”屏幕构建必要的列表。
我对第一个解决方案感到不安,因为我可以看到一个 UI 用例影响了我的域设计,但是 db 完成了处理分页、合并列表等繁重的工作,并且没有连接所有这些信息是由一个简单的查询收集的.
第二种解决方案虽然看起来更整洁,但在易用性和性能方面有所下降。
请指教。