三层架构-循序渐进
来源:互联网 发布:13.3英寸笔记本知乎 编辑:程序博客网 时间:2024/03/28 20:31
一、为什么需要三层?
实例
服务员只管接待客人
厨师只管烹炒客人要的美食
采购员只管按客人需求采购
他们各负责其责
结论:
数据库访问和用户类型判断逻辑放在一起实现
用户界面层直接调用数据访问实现
整个系统功能放在同一个项目中实现
二、三层结构基本的概念:
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
各层作用:
数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,
也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.
业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层
是积木,那逻辑层就是对这些积木的搭建。
表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,
无论表现层如何定义和更改,逻辑层都能完善地提供服务。
三、三层的优缺点:
优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点:
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的
数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设
计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
四、三层架构规则:
1.系统各层次及层内部子层次之间都不得跨层调用。
2.Entityobject 在各个层之间传递数据。
3.需要在UI层绑定到列表的数据采用基于关系的DataSet传递,除此之外,应该使用Entityobject传递数据。
4.对于每一个数据库表(Table)都有一个Entityclass与之对应,针对每一个Entity class都会有一个BEM Class与
之对应。
5.在数量上,BEMClass比Entity class要多,这是因为有些跨数据库或跨表的操作(如复杂的联合查询)也需要由
相应的BEM Class来提供支持。
6.对于相对简单的系统,可以考虑将Businessclass 子层和Business Flow 子层合并为一个。
7.UI层和BL层禁止出现任何SQL语句。
五、三层之间依赖关系
六、三层之间的数据传递反向
七、三层结构原理:
3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。三层体系的应用程序将业务
规则、数据访问、合法性校验等工作放到了中间层进行处理(如下图)。通常情况下,客户端不直接与数据库进行交
互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
- 三层架构-循序渐进
- 【三层】三层架构初识
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- 三层架构
- ProGuard代码混淆技术详解
- java_web 学习记录(六):文件上传和下载
- 编程之美-2.15 子数组之和的最大值(二维)
- Codeforces 505C Mr. Kitayuta, the Treasure Hunter DP+技巧优化
- 异或运算的经典算法题:找出数组中只出现一次的数字,其它数字都出现了两次
- 三层架构-循序渐进
- 查询、关键字
- 在线购物领域类图
- js适配屏幕大小
- java设置模式--单例模式
- Date对象之将时间转为毫秒数的方法对比
- haffuman 编码c++实现
- MyEclipse中Web项目的重命名问题
- Ubuntu下安装单机版Storm运行环境