初识三层

      首先,我们这里所说的三层架构是指逻辑上的划分。并非物理上的划分方式。区分层次的目的即为了“高内聚,低耦合”的思想。使用三层架构,必定有非常多的优点和优点,但并非全部的都必须用三层。对于比較业务逻辑简单。没有真正的数据存储的项目系统,就不须要用三层了。

      三层详细是指表现层,也叫显示层(UI)、业务逻辑层(BLL)、数据訪问层(DAL)。以下分别介绍一下这三层:

1、表现层UI

表现层是呈现给用户的。因此其设计与构想要符合用户的偏好和风格。

“用户至上,兼顾简洁”是一个不变的原则。

回忆我们做VB小样例的时候,Form1就是终于执行的时候呈现出来的界面,我们能够通过它来输入password登录,也能够通过它获取信息。UI的作用跟它差点儿相同作用无非就是输入和输出。即向用户展现特定业务数据。採集用户的输入信息和操作。

表现层仅仅负责这两个大的功能,而对于显示的数据是怎么来的、又是怎样工作的。它都不用考虑。


2、业务逻辑层BLL

      非常多人把业务逻辑层看作是三层的核心。这也说明了它在体系架构中的关键位置,它处于数据訪问层与表示层中间,起到了数据交换中承上启下的作用。

 它的作用也可大概分为两个:一是从数据訪问层DAL获取数据,供UI显示。一是对从UI得到用户的指令和数据,进行业务逻辑处理,然后写入DAL数据源。比方,用户输入username和password进行登录,BLL层就负责对其进行业务逻辑处理,然后DAL层查看是否存在该用户。


3、数据訪问层DAL

  数据訪问层主要是与数据源打交道。负责数据库的訪问,能够訪问数据库系统、二进制文件、文本文档或是XML文档。详细包含:从数据源载入数据。向数据源写入数据,从数据源删除数据。
简单的说法就是实现对数据表的Select。Insert,Update,Delete的操作。



 通过对三层概念的了解,我们对它们各层的联系就会有一个大致的了解。

总结一下例如以下:

 UI仅仅负责显示和採集用户操作,不包括不论什么业务相关的逻辑处理。
 BLL负责处理业务逻辑。通过获取UI传来的操作指令。决定运行业务逻辑,在须要訪问数据源的时候直接交给DAL处理。处理完毕后,返回必要数据给UI。
 DAL提供主要的数据訪问,不包括不论什么业务相关的逻辑处理。

 它们分别处在不同的程序集中,但各个层之间存在一定的引用关系。引用是什么意思呢?引用是项目之间的一个桥梁和通道,借助于引用,我们能够使得各层之间有了联系。可是引用也有禁忌。不能循环引用。比方A引用B,那么B就不能够引用A。
UI直接引用BLL,可能会间接引用DAL。

BLL引用DAL。

DAL不引用UI和BLL。
各层为什么要引用为什么不引用是和它们的功能和作用直接相关的。在这里就不赘述了。

除了这些引用关系。另一个重要的角色没有出场,那就是Model数据模型。数据模型的作用是封装数据。在三层之间数据传输。它并不知道各个层次,是独立于各个层次的。

因此它不会引用各层,但其它层须要引用它。


说到三层,大家常常把三层与MVC放在一起比較。尽管他们都是在分层,都是在解耦。但事实上他们根本不是一个概念。三层架构将整个项目划分为:表现层(UI)、业务逻辑层(BLL)、数据訪问层(DAL)。

而 MVC分为Model(模型)。View(视图),Controller(控制)。它的目的是职责划分。

三层架构是一个分层式的软件体系架构设计,它可适用于不论什么一个项目。

MVC是一个设计模式,它是依据项目的详细需求来决定是否适用于该项目。

我们通常是在考虑使用了三层架构的基础上再依据详细需求决定是否须要使用MVC,所以MVC中总是伴随着三层架构,所以大家总是会觉得MVC就是三层架构,三层架构就是MVC。殊不知。它们二者是一起出现的。



原文地址:https://www.cnblogs.com/jzssuanfa/p/6890848.html