3层架构业务逻辑层无逻辑
Posted
技术标签:
【中文标题】3层架构业务逻辑层无逻辑【英文标题】:3-tier architecture business logic layer without logic 【发布时间】:2016-08-12 03:43:23 【问题描述】:您好,我目前正在做一个学校项目,我们正在制作一个 Web 应用程序。我对 3 层架构有很好的理解,但在我的业务逻辑层 (BLL) 中我几乎没有逻辑。我正在使用从我的数据访问层 (DAL) 检索到的大部分原始数据来显示在我的表示层 (PL) 中。目前在我的控制器类中,我只是调用我的映射器外观类方法而没有做任何进一步的事情。所以我的问题是:
这是正确的做法吗,因为我知道 DAL 绝不能直接与 PL 对话,反之亦然,或者我应该简单地称控制器为其他更具描述性的名称?
此外,我为每个实体创建了一个控制器类,但是如果我有一些方法位于两个实体之间,这意味着它们可以访问两个实体类。
【问题讨论】:
【参考方案1】:在实际应用程序中,数据库与表示层完全 1-1 映射是非常罕见的。通常对 SQL 数据库进行规范化,或者对 NoSQL 数据库进行非规范化。此外,业务层通常需要用户身份以确保安全,并且不会直接映射到数据库表示。
关于单个控制器知道两个实体的最后一点非常好。这就是为什么您不直接在表示层中使用这些实体的原因。您可以将这些实体混搭成 UI 更容易使用的东西,并在数据访问层将它们分开。
【讨论】:
【参考方案2】:看起来你有一个Anemic Domain Model。
在“现实生活”中,如果您的领域如此简单,您可能希望跳过多层、量身定制的架构,而采用更简单的方式,例如 Transaction Script 或千篇一律的 RAD 方法,其中有大量代码可以自动生成。
【讨论】:
好的,感谢您的输入,听起来很合乎逻辑!我们必须使用 3 层架构来进行学习(:以上是关于3层架构业务逻辑层无逻辑的主要内容,如果未能解决你的问题,请参考以下文章