三层

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sophia_0331/article/details/80721034

三层结构概述

三层架构通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface Layer),业务逻辑层(Business Logic Layer),数据访问层(Data Access Layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下到上分别为:数据访问层,业务逻辑层(领域层),表示层。

结构划分

多层结构的划分方式:物理/逻辑

两层结构:指的是客户机和服务器

三层结构:客户机,应用服务器和数据库服务器

物理上的三层:显示层,业务层,数据层

逻辑上划分VS物理上划分:

物理:显示层,业务层,数据层

逻辑:UI,BLL+DAL,DB

三层结构:UI(显示层),BLL(业务逻辑层),DAL(数据访问层)

各层的作用

一、DAL作用(数据访问层)

从数据源中加载数据

向数据源写入数据

从数据源删除数据

二、UI的作用(显示层)

向用户展现特定业务逻辑

采集用户的输入信息和操作

三、BLL的作用(业务逻辑层)

从DAL中获取数据,以供UI显示用

从UI中获取用户指令和数据,执行业务逻辑

BLL的职责机制

UI->BLL->UI

UI->BLL->DAL->BLL->UI

各层之间的职责关系

DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理

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

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

各个层之间的引用关系

UI->BLL->DAL

DAL所在程序集不引用BLL和UI

BLL需要引用DAL

UI直接引用BLL,可能会间接引用DAL

遵守规则

1、UI层只能作为一个外壳,不能包含任何业务逻辑的处理过程。

2、设计时应该从BLL出发,而不是从UI出发,BLL层在API上应该实现所有BizLogic,以面向对象的方式

3、不管数据层是一个简单的SqlHelper也好,还是带有Mapping过的Classes也好,应该是一定的抽象程度上做到系统无关

4、不管使用COM+(Enterprise Service),还是Remoting,还是WebService之类的远程对象技术,不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计的时候要做这样的考虑,更远的,还得考虑多台服务器通过负载均衡做集群

总结

三层其实就是U、B、D三层之间的互相传递调用,B层从D层调取数据,然后传送给UI层显示,B层从U层获取信息和数据,然后传递给D层存入数据源,然后就是之间的函数和信息传递,在后续不断学习中逐步完善对三层的理解。


猜你喜欢

转载自blog.csdn.net/Sophia_0331/article/details/80721034
今日推荐