三层架构解析图文教程
三层架构就是将整个业务应用划分三层,其主要的目的就是为了“高内聚低耦合”的思想;架构就是软件架构,是有关软件整体结构与组件的抽象描述,主要用于指导大型软件系统各个方面的设计,它是对对存储在Active Directory中的对象类别和属性的描述。
通过几个问题,来初步的学习一下三层架构
1、什么是三层架构
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。三层从下至上分别为:数据访问层(DAL)、业务逻辑层(BLL)、表示层(UI)。
表现层(UI):展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
业务逻辑层(BLL):对数据层的操作,对数据业务逻辑处理。
数据访问层(DAL):对数据库的操作,数据的增添、删除、修改、查找等。
2、应用场景——为什么要用三层架构?
解析:
不是所有的程序都需要使用三层架构,没必要把简单的问题复杂化。
先来说一下解耦,举例:修电脑
电脑硬盘坏了?我们要做的就是换掉电脑硬盘
内存条坏了?只要换内存条就好
这些部件出现问题,都不会影响别的部件的正常使用,这个就是让他们之间解耦。而和电脑不同的收音机,任何部件坏了,都会影响别的部件,这个体现的就是他们之间的耦合比较高。从这个例子里面就可以看出解耦的好处,在三层中就是用的解耦的思想。
3、三层作用
数据访问层:从数据源加载(Select),写入(Insert/Update),删除(Delete)数据。仅限于和数据源打交道,让程序简单明了。
显示层(UI):向用户展现特定业务数据,采集用户的输入信息和操作。
原则:用户至上,兼顾简洁。
业务逻辑层(BLL):从DAL中获取数据,以供UI显示用,从UI中获取用户指令和数据,执行业务逻辑、从UI中获取用户指令和数据,通过DAL写入数据源。
4、各个层之间的关系:
UI->BLL->UI:UI提供数据指令到业务逻辑,若自己可以搞定,则直接反馈到UI
UI->BLL->DAL->BLL->DAL:UI提供用户指令和数据,提出请求并搜集一定的数据BLL,BLL处理不了时
5、三层联系——引用
以登陆为例子,说明三层之间的引用关系:
实体层(entity):定义的用户名和密码。
U层:向对应的文本框中输入账号和密码
B层:判断U层输入的账号和密码是否存在。
D层:连接数据库的语句,查询数据库。
他们之间的联系是通过实体传递来进行的,。
DAL所在程序集不引用BLL和UI
BLL需要引用DAL
UI直接引用DAL,可能引用BLL
非常忌讳互相引用,为了避免这个问题所有出现了实体层(业务数据模型,里面的数据和数据库的有所差异)
应用原则:DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理。UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理,BLL负责处理业务逻辑,通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
6、各层是如何调用的
表示层(UI)是用户需要的界面,用户有什么需求都是在这个上面进行的改动,一旦有改动,首先U层向B层发送用户请求的说明,到达B层,B层再将U层的用户请求发送到D层,D层接受到用户请求的指令后,对它进行处理,发送数据反馈到B层,B层再发给U层,将这一变化反应出来。
举例:
小菜和大鸟吃羊肉串的例子,小菜和大鸟就是用户,服务员为表示层(U层),烤肉师父为业务逻辑层(U层引用B层的方法或者参数),老板娘为数据访问层(D层),负责给烤肉师父从库房拿烤串。大鸟点了羊肉串5串(参数),服务员把羊肉串5串(参数传递)传递给烤肉师父(数据请求),烤肉师父再传递给老板娘(对参数进行处理),老板娘得到请求后,拿羊肉串给烤肉师父(数据反馈),烤肉师父将烤好的羊肉串给服务员(数据反馈),服务员再将5串羊肉串给大鸟(U层展现出来),他们之间通过调用来实现联系。
7、三层PK二层二层架构:
业务逻辑简单,没有真正的数据存储层
三层架构:抽象出业务逻辑层,当业务复杂到一定程度,当数据存储到相应的存储介质,数据存储脱离开业务逻辑,把业务逻辑脱离开UI单独存在,UI只需要呼叫业务访问层,就可以实现跟用户的交互。
三层的好处:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
6、结构更加的明确
7、在后期维护的时候,极大地降低了维护成本和维护时间。
这几点的中心思想就是“高内聚,低耦合”,类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。
以上就是脚本之家为大家讲解的对三层的简单认识, 想了解更多精彩教程请继续关注脚本之家网站!
相关文章
- ASP.net构架是可以用Microsoft(R)公司最新的产品 Visual Studio.net开发环境进行开发,ASP.net是基于通用语言的编译运行的程序,它的强大性和适应性,可以使它运行在Web2014-03-03
- 这篇文章主要为大家介绍了如何构建安全的网络架构的方案,网络的安全核心,提供边界安全防护和访问权限控制;网络防病毒系统:杜绝病毒传播,提供全网同步的病毒更新和策略2014-09-25
- 校园网是为学校师生提供快捷高效的教学、科研和综合信息服务的网络,那么校园网大二层架构是怎么设计的呢?请和脚本之家的小编一起来看一下2014-09-26
fast无线路由器设置方法 FAST FW300R无线路由器设置图解
下面介绍下Fast FW300R无线路由器宽带共享上网的设置图解。随着网络的发展无线路由器已近逐步的普及到家庭用户中了。本网站主要介绍各类路由器设置的图解教程,下面开始介2015-05-12- 公司搬家了, 网线需要重新做下了,经常不做网线了对水晶头的排序都忘了,特从网上整理了一些资料,方便需要的朋友。2022-11-04
水星MW300R 11N无线路由器的设置详细方法 视频图文教程
水星MW300R无线路由器,该产品有高达300M的网络带宽和双天线设计,可以极大的满足了对带宽和信号覆盖范围要求比较苛刻的用户的需要,市场参考价格仅售108元,无论是家庭、S2012-05-11- 根据网上的调查,发现还有很多电脑的新手朋友,还不知道原来电脑是可以给手机发短信的,下面小编将针对“如何用电脑给手机发短信”这一主题给大家详细讲解2011-12-31
- 谈谈我们的进程间通信,上次我们谈进程是什么?进程是社会的一个个人,每个都有自己的财产,都有自己的空间,那么人需要通信吗2012-05-11
- 办公室里有一台打印机,连接到我的电脑上,其他同事在需要打印的时候,是不是必须把文件传给我,让我来打印呢?不是的,其他同事的电脑,只要连接到我的打印机,在自己电脑2011-09-20
- 设置开机时宽带自动连接(适用WindowsXP),很多人在使用包月的宽带,都想一开机就能自动进行宽带连接。没有购买路由器或没有将宽带猫配置路由的朋友,其实也可以实现这一目2013-03-04
最新评论