gpt4 book ai didi

c# - 使用 C# 的存储库模式的通用业务层设计(如何)

转载 作者:行者123 更新时间:2023-11-30 16:34:45 24 4
gpt4 key购买 nike

我正在使用带有 Web 应用程序的存储库设计(存储库(数据层)将模型(对象)暴露给业务层,然后业务层被数据层 (ui) 使用。对象或对象列表在各层之间传递这种类型的实现。

我发现我的业务层正在变成一系列管理器类型类,它们都具有通用的 GetAll、GetById、Save、Delete 类型方法。这对于许多非常小的简单对象来说非常常见。这是值得关注的领域或改进的机会(较小的业务经理类(class)系列)。我正在寻找避免整个系列的较小业务管理器类映射到仅获取/保存/删除对象的较小对象的选项。

除了 get/save/delete 类型的方法(这些管理器类都可以)之外,更接近于应用程序功能的更大的对象有许多方法。

我在想有一种设计模式或实现可以让我拥有一个驻留在业务层中的管理器类,它可以接受一个对象作为特定对象类型的参数,并分别接受 get/save/delete 方法知道要启动并将对象传递给它以进行操作的存储库对象的类型。

这里的好处是我可以有一个通用管理器类来将较小类型对象的保存/删除/获取传递给适当的存储库类,从而减少许多较小的管理器类。

关于如何实现这一点的想法?谢谢

最佳答案

我不会那样做的。业务层类可以像转发到数据层的代码一样简单,编写它们确实很烦人,但它们的存在有几个原因:验证、安全、根据业务规则采取一些行动。

如果您尝试创建一个通用的业务层,则很难包含业务类可以做的所有各种事情。通用业务层将变得比您当前拥有的复杂得多。测试将更加困难。添加新的业务规则也很困难。

对不起,这不是你想看的,但我已经走了通用系统的路线,一直有很多遗憾。

关于c# - 使用 C# 的存储库模式的通用业务层设计(如何),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348961/

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