三层基础知识梳理

来源:互联网 发布:南京江宁教育网络问政 编辑:程序博客网 时间:2024/05/23 14:07

在没学习三层之前,我的“今目标”中的项目名称是MVC分层。有一段时间我搞不清这两个是什么概念,有何不同,我找了一些资料,现在还不能很好地理解。先分享一下。

三层架构是界面层(UI)、业务逻辑层(BLL)、数据访问层(DAL)构成的,而MVC是模型层(M)、界面层(View)、控制层(Controller)构成的,而且它们之间也不对应。如果硬要给他们对应的话,那么三层架构中的UI对应MVC中的view(jsp),都是用于显示以及获取界面的数据;三层架构中的BLL层和DAL层对应MVC中的Model(javabean)层都是用于处理上层传递来的数据以及从数据库获取的数据的;MVC中的Controller(Servlet)最多算是三层架构中的UI的一部分,也就我们常说的是Servlet。如图:

这两者核心的部分是“分层,解耦”。从这个角度看,三层架构和MVC又是一致的,只不过划分方法不同。

下面是我对三层基本知识的梳理。

1:每一层是什么以及有什么作用。

U层(显示层---User Interface):向用户展现特定业务数据,采集用户的输入信息和操作。

B层(业务逻辑层---Business Logic Layer):从DAL中获取数据,以供UI显示用;从UI中获取用户指令和数据,执行业务逻辑;从UI中获取用户指令和数据,通过DAL写入数据源。B层的职责机制有两种:一种是UI--->BLL--->UI;另一种为UI--->BLL--->DAL---BLL--->UI.

D层(数据访问层---Data Access Layer):从数据源加载数据;向数据源写入数据;从数据源删除数据。这里的数据源不一定是数据库,还可以是XML。

此外:还有一个业务数据模型,比较倾向于业务逻辑层。封装数据。在三层之间传送数据的。独立于其他三个层次。model不会引用其他三个程序集。而其他都引用model。

2.在具体项目中的应用原则:

U层:只负责采集和显示用户操作,不包含任何的业务相关的逻辑处理。

B层:负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。

D层:只提供基本的数据访问,不包含任何相关的业务处理。

3.各层的引用关系:

UI--->BLL--->DAL

UI直接引用BLL,可能会间接地引用DAL;BLL需要引用DAL;DAL程序集不引用BLL和UI。

当然要想真正的明白,还需要在实践中练习。实例练习请见下一篇博客。

0 0