gpt4 book ai didi

.net - DAL : repository boundaries question

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

有一个 DAL 库公开了十几个存储库。每个实体一个存储库。有 PersonRepositoryPhotoRepository

当我向存储库添加新方法并且方法处理实体时,很明显我必须将它放在哪里。如果我想要 CreatePerson,我将创建 PersonRepository::Create(...) 或者当我需要更新照片时,我将创建 PhotoRepository::Update

但是当方法处理实体关系时,事情有时会变得空洞。例如,我应该创建 PersonRepository::AssignPhoto(PersonId, PhotoId) 还是创建 PhotoRepository::AssingToPerson(PhotoId, PersonId)?

如果事情对我来说很清楚(我认为 Person 是比 Photo 更重要的实体,所以我将创建 PersonRepository 方法),一些开发人员找不到合适的方法并倾向于在 PhotoRepository 中创建副本。

您如何最大程度地减少此问题?

您是否可以同时创建这两种方法(PersonRepository::AssignPhotoPhotoRepository::AssignToPerson)(一个方法委托(delegate)调用另一个方法来实现)?或者我们是否应该在团队中拥有强大的存储库方法命名约定?或者我可能会改变存储库边界的方法?

最佳答案

在面向对象的世界中,我有一个带有 AssignPhoto 方法的 Person 对象。

处理对存储库的对象关系操作感觉像是一种过程方法,至少对我而言。

关于.net - DAL : repository boundaries question,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3342610/

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