我对表达 3 层架构的不同可能性感到困惑。
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)
或者
Database (aka Backend)
Business-Layer
Presentation Layer (User Interface)
为什么可以在第一种方法中跳过数据库?两者都使用数据库!数据库是否属于分层?!
什么是错的,什么是对的?
你们有人可以澄清一下吗?
我对表达 3 层架构的不同可能性感到困惑。
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)
或者
Database (aka Backend)
Business-Layer
Presentation Layer (User Interface)
为什么可以在第一种方法中跳过数据库?两者都使用数据库!数据库是否属于分层?!
什么是错的,什么是对的?
你们有人可以澄清一下吗?
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)
数据访问层不一定是数据库。它可能是一个 XML 文件。它可能是一个 RSS 提要。它可能是一个外部应用程序。它可以是您喜欢的任何东西,可以将数据输入您的应用程序。
所以真的是:
[Data-Source]
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)
数据库、XML、RSS 等在哪里[Data-Source]
...我更愿意将数据源本身视为驱动程序,而不是层。
这种方法的灵活性允许您在不触及应用程序的其余部分的情况下更换数据源。因此,如果您开始使用 XML 文件作为后端数据,然后您想将其更改为数据库,您只需触及 DAL 层 - 应用程序的其余部分并不关心,只要它仍然获得相同格式的数据。
Microsoft 的 Patterns and Practices 小组有一个出色的体系结构指南,其中涵盖了有关此问题的所有变体。它略微侧重于 .NET,但非常适用于任何环境。强烈推荐。
您是否考虑过您的 dal 可能不使用可以使用 xml 文件的数据库?
第一种方法是使用更抽象的概念,即 3 层。
每一层的内容取决于层的实现。Yuo 可能会发现您在 GUI/DB/BizLogic '程序'之间混合了您的层,但在抽象中您仍然保留这些层。
数据访问层
业务层
表示层(用户界面)
考虑到上述情况,您可能会编写连接到数据库的代码。这是DAL还是逻辑?
在您编写代码以访问数据时,我会考虑 DAL。
表示层
这是应用程序的最顶层。表示层显示与浏览商品、购买和购物车内容等服务相关的信息。它通过将结果输出到浏览器/客户端层和网络中的所有其他层来与其他层通信。
应用层(业务逻辑/逻辑层/数据访问层/中间层)
逻辑层是从表示层中抽出来的,作为它自己的层,它通过执行详细的处理来控制应用程序的功能。
数据层
该层由数据库服务器组成。在这里存储和检索信息。该层保持数据中立,独立于应用服务器或业务逻辑。为数据提供自己的层还可以提高可伸缩性和性能。
有关更多详细信息,请参见以下内容:
http ://en.wikipedia.org/wiki/Multitier_architecture