gpt4 book ai didi

domain-driven-design - DDD、抽象类、聚合和存储库,一个或多个存储库?

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

考虑存储库聚合。文献中说每个聚合有一个存储库。

但是,如果我的聚合都是基类的所有子类(是一种关系,则继承不用于重用)。我是否必须为所有子类创建存储库,还是可以为所有子类使用相同的存储库。

PaperBag paperBag = paperBagsRepository.get(paperBagId);
PlasticBag plasticBag = plasticBagsRepository.get(plasticBagId);

或者

PaperBag paperBag = bagsRepository.get(paperBagId);
PlasticBag plasticBag = bagsRepository.get(plasticBagId);

最佳答案

在应用程序级别,您通常希望每个聚合有一个存储库。这里的动机是您正在尝试最大程度地减少与实现细节相关的代码量。

参见 Parnas, 1972 .

所以在客户端代码中,首选这种风格:

PaperBag paperBag = paperBagsRepository.get(paperBagId);
PlasticBag plasticBag = plasticBagsRepository.get(plasticBagId);

必须那样做吗?不会。Parnas 和 DDD 警察都不会来敲你的门。但是,将两者分开可以使代码更易于更改,这是可持续成功的重要属性。

关于domain-driven-design - DDD、抽象类、聚合和存储库,一个或多个存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54236067/

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