3层架构 - 分层和术语 - 混杂

时间:2010-04-14 11:50:15

标签: architecture 3-tier

我对表达3层体系结构的不同可能性感到困惑。

Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)

Database (aka Backend)
Business-Layer
Presentation Layer (User Interface)

为什么你可以在第一种方法中跳过数据库?两者都使用数据库! 数据库是否属于分层?!

有什么不对,什么是对的?

你们有人可以澄清一下吗?

4 个答案:

答案 0 :(得分:3)

Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)

Data-Access-Layer不一定是数据库。它可以是一个XML文件。它可能是一个RSS提要。它可以是外部应用程序。可能是您喜欢的任何数据都可以将数据导入您的应用程序。

所以它真的是:​​

[Data-Source]
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)

其中[Data-Source]是数据库,XML,RSS,等等...我更喜欢将数据源本身视为驱动程序,而不是图层。

此方法的灵活性允许您在不触及应用程序其余部分的情况下交换数据源。因此,如果您开始使用XML文件作为后端数据,然后您想将其更改为数据库,则只需触摸DAL层 - 只要应用程序的其余部分仍然获得数据格式相同。

答案 1 :(得分:0)

您是否认为您的dal可能不使用可以使用xml文件的数据库?

第一种方法是使用更抽象的概念,即3层图层。

每层中的内容取决于层的实现。 Yuo可能会发现你在GUI / DB / BizLogic'程序'之间混合你的层,但在摘要中你仍然保留这些层。

  

数据接入层
  业务层
  表示层(用户界面)

考虑到上述情况,您可能需要连接到数据库的代码。这是DAL还是逻辑?

在您编写代码以访问数据时,我会考虑使用DAL。

答案 2 :(得分:0)

演示文稿层
    这是应用程序的最高级别。表示层显示与诸如浏览商品,购买和购物车内容之类的服务有关的信息。它通过将结果输出到浏览器/客户端层和网络中的所有其他层来与其他层进行通信。
应用程序层(业务逻辑/逻辑层/数据访问层/中间层)
    逻辑层从表示层中拉出,并且作为其自己的层,它通过执行详细处理来控制应用程序的功能。
数据层
    该层由数据库服务器组成。这里存储和检索信息。此层保持数据中立并独立于应用程序服务器或业务逻辑。为数据提供自己的层也可以提高可伸缩性和性能。

有关详细信息,请参阅以下内容:
http://en.wikipedia.org/wiki/Multitier_architecture

答案 3 :(得分:0)

Microsoft的模式和实践组有一个很好的architecture guide,可以解决此问题的所有变体。它稍微侧重于.NET,但非常适用于任何环境。强烈推荐。