标签:
由于进度比较慢,所以总是听小伙伴们说三层,到今天才慢慢的接触到。对于大家说的解耦和分层的思想,有了一点感触。
根据视频中讲的,我进行了总结:
一、两层和三层结构
简单的说,客户端程序访问服务器的结构叫两层结构。中间加一个事务逻辑处理封装的中间件作为沟通就是三层结构,这样可以均衡数据负载。三层在安全性、稳定性及大量并发控制上要强于两层的,它不会让客户端直接面对数据库,所有减少了由于客户端被破解而给数据库带来损失的风险,并且可以比较妥善的解决多用户并发带来的服务器拥挤,但是在客户端比较少的情况下,它访问数据的速度要慢于两层结构的。
二、多层结构的划分
结构的划分有两种,分别是物理上和逻辑上。从物理的角度说,可以分为显示层、业务层和数据层。从逻辑角度说,分为UI层、BLL+DAL层、DB层。我们所说的三层是逻辑上的三层。看名称以为物理角度和逻辑角度分出来的三层是一样的,后来才知道,物理角度是从计算机的硬件方面来划分,分别位于客户机、应用服务器、数据库服务器上,这是三台计算机,而逻辑上的三层是在一台计算机上包括显示层、业务逻辑层、数据访问层。
三、为什么要使用三层
首先我们要知道,层次结构在现实社会中随处可见。记得有个笑话讲有个村长得意的向他的老婆吹牛:“全中国比我官大的只有四个人,乡长、县长、省长和国务院总理”,这个笑话体现了真实社会的分层现象,社会人群会分层,公司管理人员结构也会分层。我们知道在整个程序中,最基本的就是“高内聚,低耦合”的思想。我们将程序分层,各层之间不会相互影响,等到出现问题的时候,我们可以分层去检查,大大提高了效率。
四、分层的优缺点
优点:1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点:1、因为我们把程序分层了,所以用户不能直接访问数据库,获得数据,而是通过中间层去访问数据,从而降低了系统的运行性能。
2、有时会导致级联的修改。如果在表示层中需要增加一个功能,为保证其设计符合分层结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。
五、三层使用情况
一句话:当业务复杂到一定程度时,当数据存储到相应的数据库或数据存储介质。
下面我们来详细的介绍三层:
DAL(数据访问层)
作用:
1、 从数据源加载数据(select)
2、 向数据源写入数据(Insert/Update)
3、 从数据源删除数据(Delete)
原则:
只提供基本的数据访问,不包含任何业务相关的逻辑处理。
UI(显示层)
作用:
1. 向用户展现特定业务数据
2. 采集用户的输入信息和操作
原则:
用户至上,兼顾简洁,只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
BLL(业务逻辑层)
作用:
1、体现核心价值的部分,关注点集中在业务规则的制定、业务流程的实现等与业务系统有关的系统设计。
2、处于访问层和表示层中间,起到了数据交换中承上启下的作用。
原则:
负责处理业务逻辑、通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交个DAL处理、处理完成后,返回必要数据给UI。
六、引用原则:
1、 DAL不引用BLL和UI
2、 BLL引用DAL
3、 UI直接引用BLL,简介引用DAL
4、 UI、DAL和BLL 都要引用Model
下面用一张图来表示视频的大概内容:
总结:我们在学习过程中首先要有一个理论上的认识,然后再实践过程中进行深入了解,只有自己动手了,遇到问题,解决问题了,才算真正的吸收了。GO!!!
标签:
原文地址:http://blog.csdn.net/xingyu0806/article/details/45501143