您好我正在开展一个学校项目,我们正在制作一个Web应用程序。我对3层架构有很好的理解,但在我的业务逻辑层(BLL)中我几乎没有逻辑。我正在使用从我的数据访问层(DAL)检索的大部分原始数据来显示在我的表示层(PL)中。目前在我的控制器类中,我只是调用我的映射器外观类方法而不做任何进一步的操作。所以我的问题是:
这是正确的方法吗,因为我知道DAL绝不能直接与PL说话,反之亦然,或者我应该简单地将控制器称为其他更具描述性的东西?
此外,我为每个实体创建了一个控制器类,但如果我在两个实体之间有一些方法意味着它们访问两个实体类,那该怎么办呢。
答案 0 :(得分:1)
在实际应用程序中,数据库与表示层完全相同地映射为1-1是非常罕见的。通常对SQL数据库进行规范化,或对NoSQL dbs进行非规范化。此外,业务层通常需要用户身份以确保安全性,并且不会直接映射到数据库表示。
关于单个控制器了解两个实体的最后一点非常好。这就是为什么您不直接在表示层中使用这些实体的原因。您可以将这些实体混合成UI可以更容易使用的内容,并将它们分开保存在数据访问层。
答案 1 :(得分:1)
看起来你有Anemic Domain Model。
在现实生活中,如果你的域很简单,你可能想跳过多层的,量身定制的架构,并采用更简单的方式,如Transaction Script或千篇一律RAD接近可以自动生成大量代码的地方。