三层架构
通常意义的三层架构是将整个业务应用划分为:表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。区分层次的目的是为了“高内聚、低耦合”的意思。
1、表示层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新和查找等。
三层结构原理:
3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓三层体系结构,是在客户端和数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理层上的三层,不是简单的放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层指的是逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放置到中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
表示层
位于最外层(最上层),离用户最近。用于显示数据和接受用户输入的数据,为用户提供一种交互式操作的界面。
业务逻辑层
业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它处于数据访问层与表示层中间,起到了承上启下的作用,由于层是一种弱耦合的结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于调用的底层而言没有任何影响。业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层。
数据访问层
数据访问层有时候也叫持久层,其功能只要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或XML文档。
简单的说法就是对数据表的Select、Insert、Delete,Update的操作。如果要加入ORM元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。
与MVC的区别
MVC(模型Model-视图View-控制器Controller)是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。
同样是架构级别的,相同的地方在于他们都有一个表现层,但是他们不同的地方在于其他的两个层。
在三层架构中没有定义Controller的概念。这是我认为最不同的地方。而MVC也没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是以实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。