【问题标题】:3-tier architecture business logic layer without logic3层架构业务逻辑层无逻辑
【发布时间】:2016-08-12 03:43:23
【问题描述】:

您好,我目前正在做一个学校项目,我们正在制作一个 Web 应用程序。我对 3 层架构有很好的理解,但在我的业务逻辑层 (BLL) 中我几乎没有逻辑。我正在使用从我的数据访问层 (DAL) 检索到的大部分原始数据来显示在我的表示层 (PL) 中。目前在我的控制器类中,我只是调用我的映射器外观类方法而没有做任何进一步的事情。所以我的问题是:

这是正确的做法吗,因为我知道 DAL 绝不能直接与 PL 对话,反之亦然,或者我应该简单地称控制器为其他更具描述性的名称?

此外,我为每个实体创建了一个控制器类,但是如果我有一些方法位于两个实体之间,这意味着它们可以访问两个实体类。

【问题讨论】:

    标签: web web-applications architecture controller 3-tier


    【解决方案1】:

    在实际应用程序中,数据库与表示层完全 1-1 映射是非常罕见的。通常对 SQL 数据库进行规范化,或者对 NoSQL 数据库进行非规范化。此外,业务层通常需要用户身份以确保安全,并且不会直接映射到数据库表示。

    关于单个控制器知道两个实体的最后一点非常好。这就是为什么您不直接在表示层中使用这些实体的原因。您可以将这些实体混搭成 UI 更容易使用的东西,并在数据访问层将它们分开。

    【讨论】:

      【解决方案2】:

      看起来你有一个Anemic Domain Model

      在“现实生活”中,如果您的领域如此简单,您可能希望跳过多层、量身定制的架构,而采用更简单的方式,例如 Transaction Script 或千篇一律的 RAD 方法,其中有大量代码可以自动生成。

      【讨论】:

      • 好的,感谢您的输入,听起来很合乎逻辑!我们必须使用 3 层架构来进行学习(:
      猜你喜欢
      • 1970-01-01
      • 2014-06-01
      • 2010-12-07
      • 2010-12-18
      • 2014-09-04
      • 2017-01-10
      • 2011-12-03
      • 2011-11-26
      • 2017-04-29
      相关资源
      最近更新 更多