首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储库模式和业务逻辑

存储库模式和业务逻辑
EN

Stack Overflow用户
提问于 2009-06-18 16:50:52
回答 4查看 18.7K关注 0票数 12

我有一个从数据层检索数据的存储库(CustomerRepository)。大多数业务逻辑位于存储库接受或返回的实体类(Customer)中。

但是,您将全局实体业务逻辑(适用于所有客户)放在哪里?

例如,我可能不想将所有客户都返回给某些用户。我不想把这个逻辑放到存储库中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-06-18 17:17:28

我同意Robert Munteanu的观点。

基本上,您将模型中不固有的业务逻辑汇总到中间层中。中间层是业务层/业务对象/业务逻辑层/等等,但仅被称为服务层。它不一定是term服务,它是术语服务的广泛使用,因为它聚合了特定应用程序领域的功能。

基本上,您将拥有一个包含存储库引用的CustomerService类。表示层将引用服务层类。

还有一个额外的区别,可以根据您的名字来猜测您正在使用.net,并且可能使用LINQ to SQL作为您的存储库,如NerdDinner中所述。

存储库通常将IQueryable返回给服务层,允许服务层将多个查询链接在一起以构建不同的结果集。然后,服务使用ToList或其他类似方法计算表达式,并将其返回给表示层。

票数 26
EN

Stack Overflow用户

发布于 2009-06-18 17:02:56

将其放入另一个存储库(BusinessRuleRepository),并让CustomerRepository使用它。

如果业务逻辑仅限制用户可以看到的结果,那么您可能希望将外观模式与工厂一起使用。在本例中,您将拥有一个处理CustomerRepository和LimitedCustomerRepository (可能封装CustomerRepository)的ICustomerRepository,以及一个为用户返回适当ICustomerRepository的CustomerRepositoryFactory。

票数 7
EN

Stack Overflow用户

发布于 2009-06-18 16:52:10

将其封装在一个服务中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1013855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档