浅谈三层
来源:互联网 发布:成都java 编辑:程序博客网 时间:2024/05/18 02:11
三层,顾名思义,三个层次,在软件系统中把系统分为表示层(U),逻辑层(B),数据层(D)
我们先聊一聊为什么要给系统分层。历史:在很久之前软件系统很小,数据量不大,一般直接开发就行,
不用分层的,但是随着计算机的发展,用户越来越多,数据量越来越大,不分层的系统暴露出来很多问题,难
维护难移植,难扩展等等,三层就营运而生了。软件的开发用三层的思想可以很好的实现对系统解耦,很大程
度上解决了原来暴露出的问题,再后来就是在三层的基础上发展出来了七层,但是这里重点聊三层。话说回来
这三层为什么这样分,都有什么作用呢?
一、三层
表示层(U):用户使用的界面主要是数据的输入和显示
数据层(D):对数据库中数据的进行增删改查操作
逻辑层(B):介于U层和D层之间,对数据的交互有承上启下的作用,它既要处理表示层传入的数据并传给D
层,还要把D层处理好的数据返回到U层,所以说B层是整个系统的精华所在
分层的主要原因就是为了分工合作便于开发,将用户与数据分离,避免直接对数据的操作
二、剖析
三层可不仅仅是这么简单的,下面来深入分析一下
1.关系
三层之间的关系是向下依赖的,底层对于顶层来说是无知的,如下的调用关系
U->B->D
一般是上层调用下层的方法
2.数据传送
最简单的是增删改操作:U->B->D
复杂一点的是查操作:U->B->D->B->D
从数据传送中也可以很明显的看出B层是U层和D层交互的中介
举个例子:U层需要数据库中的数据,它不会直接从数据库取数据,通过三层取数据的过程是,U层输
入指令,传递给B层,经过B层的逻辑处理,再调用D层的方法,D层的方法中存有对数据库操作的方法,
D层取到数据后在通过B层传递给U层
3.区分
U层:数据的输入和显示
B层:对输入数据的处理和传出数据,包含的逻辑比较多
D层:主要是对数据库中数据的操作,没有太多的逻辑
4.实体类
在三层中起到数据获取和传送的是Model(实体类),它主要是吧数据库中的各个字段映射为属性
U层、B层和D层都要引用实体类,这样才可以得到实体中的属性值
三、三层优缺点
a.优点:1.结构明确;2.系统耦合性低;3.有利于各层代码的复用;4.更易于维护;5.分工实现,高效
b.缺点:1.性能降低,某些业务本来可以直接访问数据获得,现在却要经过中间层
2.增加系统开发的成本
3.造成级联,如果表示层要增加功能,那么有可能要修改逻辑层和数据层
四、扩展
MVC 'VS' 三层
MVC是Model-View-Control三者组合而成
Model作用:处理数据的逻辑部分
View:用户看到的界面,和用户交互
Control:从View接收数据,控制用户数据,并向数据模型发送数据
乍看起来,MVC和三层一样,其实严格来说MVC三部分组合起来才是三层中的表示层,是对U层的细分
小结:
现在才是刚刚接触三层,随着以后的学习,我们会学习到更多三层的知识
这一阶段B/S的学习让我们积累了很多的,下一步是实践了,要好好利用积累的东西
1 0
- 浅谈三层
- 浅谈三层
- 浅谈三层
- 浅谈三层
- 浅谈三层
- 浅谈.NET三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈 三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈“三层架构”
- 浅谈三层与实体
- 浅谈三层架构
- 浅谈三层结构
- 浅谈三层模式
- 浅谈三层学习
- jQuery常见的50种用法
- 防抖动的按键事件(定时器)
- Android-Activity生命周期(生命,有始有终!)
- Ubuntu下软件安装ant1.9.4、Maven3.2.5
- 如何提高效率 Aaron Swartz
- 浅谈三层
- 浩浩荡荡的linux学习之路即将启程,特开通此博客来总结自己的所学
- solrcloud 非leader节点同步索引的日志记录
- std::map的insert和下标[]访问
- 数据结构笔记 - 图
- 学校的景点见得最短路径问题
- 解决Android sdk content loader 0%
- iOS控件使用之UISegmentedControl
- IT行业offer档次排名