gpt4 book ai didi

design-patterns - 服务应该依赖于许多存储库,还是将它们分解?

转载 作者:行者123 更新时间:2023-12-01 05:46:01 24 4
gpt4 key购买 nike

我正在使用存储库模式进行数据访问。所以我基本上每个表/类都有一个存储库。我的 UI 目前使用服务类来实际完成工作,这些服务类包装,因此依赖于存储库。在许多情况下,我的服务只依赖于一两个存储库,所以事情并不太疯狂。不幸的是,我在 UI 中的一个表单希望用户输入跨越五个不同表的数据。对于这个表单,我创建了一个依赖于五个存储库的服务类。然后服务中用于保存和加载数据的方法调用所有相应存储库上的适当方法。

可以想象,这个服务中的保存和加载方法真的很大。此外,对这项服务进行单元测试变得非常困难,因为我必须设置如此多的假存储库。

将这个单一服务拆分成几个较小的服务会是更好的选择吗?它会在 UI 层放置更多代码,但会使服务更小、更可测试。

最佳答案

我不会每个表/类都有一个存储库类。

每个“模块”或“根聚合”应该有一个存储库。也就是说,某个存储库可以覆盖的不仅仅是一张表。我们已将相关表分组到一个存储库中。例如,我们在 Person、Company 等不同表的顶部有一个 RelationRepository,在表的 Orders、OrderLines、FlightRepository 等表的顶部有一个 OrderRepository,用于存储航类的所有数据等。
这是存储库模式,因为无论如何您都应该根据域驱动设计来使用它。

关于design-patterns - 服务应该依赖于许多存储库,还是将它们分解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2249533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com