Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 三层体系结构分层和术语mishmash_Architecture_3 Tier - Fatal编程技术网

Architecture 三层体系结构分层和术语mishmash

Architecture 三层体系结构分层和术语mishmash,architecture,3-tier,Architecture,3 Tier,我对表示3层体系结构的不同可能性感到困惑 Data-Access-Layer Business-Layer Presentation Layer (User Interface) 或 为什么在第一种方法中可以跳过数据库?两者都使用数据库! 数据库是否属于分层 什么是错的,什么是对的 你们中有人能澄清这一点吗?你们是否考虑过dal可能不使用db,而可能使用xml文件 第一种方法是使用更抽象的概念,即3层 每一层的内容取决于各层的实现。Yuo可能会发现您在GUI/DB/BizLogic“程序”之间

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

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

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

什么是错的,什么是对的


你们中有人能澄清这一点吗?

你们是否考虑过dal可能不使用db,而可能使用xml文件

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

每一层的内容取决于各层的实现。Yuo可能会发现您在GUI/DB/BizLogic“程序”之间混合了层,但抽象地说,您仍然保留了这些层

数据访问层
业务层
表示层(用户界面)

考虑到上述情况,您可以编写连接到数据库的代码。这是DAL还是逻辑


我会考虑DAL写代码访问数据。

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

有关详细信息,请参见以下内容:

数据访问层不一定是数据库。它可能是一个XML文件。它可能是一个RSS提要。它可能是一个外部应用程序。它可以是任何您喜欢的将数据输入应用程序的东西

所以它真的是:

[Data-Source]
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)
其中
[数据源]
是数据库、XML、RSS等等。。。我更喜欢将数据源本身看作一个驱动程序,而不是一个层


这种方法的灵活性允许您在不接触应用程序其余部分的情况下交换数据源。因此,如果您开始使用XML文件作为后端数据,然后希望将其改为数据库,您只需触摸DAL层—应用程序的其余部分并不关心,只要它仍然以相同的格式获取数据。

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

术语数据源很有趣。对我来说,这个术语表示数据库没有逻辑。这个假设正确吗?当我的数据库包含整个业务逻辑时会发生什么?我还有业务层吗?您会发现,关于将业务逻辑放入数据库是否“正确”,有很多讨论。如果您决定将数据库服务器从MS SQL更改为MySQL,该怎么办?突然,你不得不重写你的业务逻辑。如果您完全删除了数据库,而使用XML呢?你的逻辑不存在了。另外,如果您的业务逻辑在数据库中没有任何意义,那么您将在两个地方维护业务逻辑——这是个坏主意。其他时候,业务逻辑只能在数据库上下文中运行。您必须根据您的特定情况定制抽象,并从这两个角度提供文章。
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)
[Data-Source]
Data-Access-Layer
Business-Layer
Presentation Layer (User Interface)