首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >域逻辑和业务逻辑

域逻辑和业务逻辑
EN

Stack Overflow用户
提问于 2012-06-14 02:05:22
回答 1查看 1.1K关注 0票数 0

在我的一个项目中,我使用了n层架构

代码语言:javascript
复制
DAL (Repository Pattern) <-> BLL (POCO Services) <-> Web UI (ASP.NET MVC)

我创建了一个通用存储库,在DAL层上一切正常。

在业务逻辑层,我有我的服务方法,它们的操作方式类似于(因为Pizza我喜欢使用的示例:)

代码语言:javascript
复制
myOven.Bake(myPizza);

尽管如此,我还是需要一些对象myPizza内部的特定信息,如下所示:

代码语言:javascript
复制
myPizza.GetBakeTime();

我知道,我可以用这样的东西:

代码语言:javascript
复制
myOven.GetBakeTimeFor(myPizza);

它可以计算它,但是我不想把这个特定的逻辑放到myOven对象(这里是服务层)中,相反,我想把它包含在myPizza中,比如

代码语言:javascript
复制
public partial class Pizza
{
    public double GetBakeTime()
    {
        // calculate Bake Time and return, based on other variables
    }
}

我的意思是,扩展我的ORM生成的类并提供此功能。

我的问题是:我知道,这在理论上是可以做到的,但在同一个类中同时使用Domain LogicBusiness Logic时,是否应该考虑到一些问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-15 18:20:19

域层应该只处理与业务相关的功能。存储库处理数据的持久性。这两者有不同的目的,不应该混为一谈。

此外,域层几乎就是业务层。对于这个特定的示例,您只需要烘焙时间,那么专门的查询存储库应该知道答案,而不涉及Domain (因为它是预先计算的)。如果您想知道还剩下多少时间用于烘焙,那么服务(域的一部分)可以使用烤箱和披萨实体来获取该值。

然而,这已经太具体了,可能根本不适合您想要解决的实际问题。

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

https://stackoverflow.com/questions/11020738

复制
相关文章

相似问题

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