前言:
经过几天的学习,对三层算是有了一点的理解。下面来小结一下。
一、什么是三层?
三层结构通常是指数据访问层、业务逻辑层和显示层。
显示层(UI):展现给用户的界面,即用户在使用一个系统的时候他的所见所得。依据应用规模的不同,所承受的负荷会有较大的差异,另外客户端的数目,应用的复杂程度都会对其造成一定的影响。
业务逻辑层(BLL):对数据层的操作和业务的处理。接收用户的指令或者数据输入,提交给应用层做处理,同时负责将业务逻辑层的处理结果显示给用户。相比传统的应用方式,业务层对硬件的资源要求较低。
数据访问层(DAL):直接操纵数据库,主要是增删改查的功能。存储数据的数据库服务器和处理数据和缓存数据的组件。组件将大量使用的数据放入系统的缓存库,以提高数据访问和处理的效率。
二、为什么要用三层?
说起为什么用三层,就要谈到两层架构和三层架构的区别。
传统的两层结构的特点是用户界面层直接与数据库进行交互,还要进行业务规则、合法性校验等工作。这种结构存在着很多局限性,比如:一旦用户的需求发生变化,应用程序都需要进行大量修改,甚至需要重新开发,给系统的维护和升级带来了极大的不便;用户界面层直接访问数据库,会带来很多安全隐患。
为了克服两层结构的局限性提出了三层结构。
所谓三层架构,是在客户/服务之间加入了一个"中间层",也叫组件层。它与客户层、服务器层共同构成了三层体系。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才有三层体系结构,三层是指逻辑上的三层。通过引入中间层,将复杂的商业逻辑从传统的双层结构(Client-Server)应用模型中分离出来,并提供了可伸缩、易于访问、易于管理的方法,可以将多种应用服务分别封装部署于应用服务器,同时增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,使用户在管理上所花费的时间最小化,从而实现了便捷、高效、安全、稳定的企业级系统应用。
简单来说,就是三层架构更加易于“解耦”,更加符合“高内聚,低耦合”的思想。
三、各层详细介绍:
UI(显示层)
作用:
1.向用户展现特定业务数据。
2.采集用户的输入信息和操作。
原则:
用户至上,兼顾简洁。UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。
BLL(业务逻辑层)
作用:
1.从DAL中获取数据,以供UI显示用。
2.从UI中获取用户指令和数据,执行业务逻辑。
3.从UI中获取用户指令和数据,通过DAL写入数据源。
原则:
负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。
DAL(数据访问层)
作用:
1.从数据源加载数据(select)。
2.向数据源写入数据(Insert/Update)。
3.从数据源删除数据(Delete)。
原则:
只提供基本的数据访问,不包含任何业务相关的逻辑处理。
四、三层架构引用原则:
1、DAL不引用BLL和UI
2、BLL引用DAL
3、UI直接引用BLL,简介引用DAL
4、UI、DAL和BLL 都要引用Model
五、三层架构的优缺点:
优点:
1.开发人员可以只关注整个结构中的其中某一层;
2.可以很容易的用新的实现来替换原有层次的实现;
3.可以降低层与层之间的依赖;
4.有利于标准化;
5.利于各层逻辑的复用。
缺点:
1.降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2.有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
小结:
刚开始学习三层,感觉自己对三层的理解不是很清晰。通过这几天对其他文档的学习和网上查阅相关资料,对三层的理解逐渐深入了。学习的过程,总是不断了解的过程。不要说不会,只是了解的还不够多。以后我们还会不断遇到不断学习,对知识点的理解就更加深入了!