在我的一个项目中,我使用了n层架构
DAL (Repository Pattern) <-> BLL (POCO Services) <-> Web UI (ASP.NET MVC)我创建了一个通用存储库,在DAL层上一切正常。
在业务逻辑层,我有我的服务方法,它们的操作方式类似于(因为Pizza我喜欢使用的示例:)
myOven.Bake(myPizza);尽管如此,我还是需要一些对象myPizza内部的特定信息,如下所示:
myPizza.GetBakeTime();我知道,我可以用这样的东西:
myOven.GetBakeTimeFor(myPizza);它可以计算它,但是我不想把这个特定的逻辑放到myOven对象(这里是服务层)中,相反,我想把它包含在myPizza中,比如
public partial class Pizza
{
public double GetBakeTime()
{
// calculate Bake Time and return, based on other variables
}
}我的意思是,扩展我的ORM生成的类并提供此功能。
我的问题是:我知道,这在理论上是可以做到的,但在同一个类中同时使用Domain Logic和Business Logic时,是否应该考虑到一些问题?
发布于 2012-06-15 18:20:19
域层应该只处理与业务相关的功能。存储库处理数据的持久性。这两者有不同的目的,不应该混为一谈。
此外,域层几乎就是业务层。对于这个特定的示例,您只需要烘焙时间,那么专门的查询存储库应该知道答案,而不涉及Domain (因为它是预先计算的)。如果您想知道还剩下多少时间用于烘焙,那么服务(域的一部分)可以使用烤箱和披萨实体来获取该值。
然而,这已经太具体了,可能根本不适合您想要解决的实际问题。
https://stackoverflow.com/questions/11020738
复制相似问题