什么是三层架构?


1、什么是三层架构?

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

1、表现层(UIL):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。

2、为什么使用三层架构?

举一个常见的例子,

如果您经营一个饭店,你会请三种员工,一种是服务员,负责给客户提供服务,另一种是厨师,负责烹饪美食,还有一种是采购员,负责为厨师提供做菜的原料。
饭店将整个业务分解为三部分来完成,每一部分各负其责,服务员只管接待顾客、向厨师传递顾客的需求;厨师只管烹炒不同口味、不同特色的美食;后勤工作人员只管提供美食原料;他们三者分工合作共同为顾客提供满意的服务。在饭店为顾客提供服务期间,服务员、厨师、后勤工作人员,三者中任何一者的人员发生变化时都不会影响其他俩者的正常工作,只对变化者进行重新调整即可正常营业。
我们用三层结构开发的软件系统于此类似,表示层只提供软件系统与用户交互的接口;业务逻辑层是表示层和数据访问层之间的桥梁,负责数据处理和传递;数据访问层只负责数据的存取工作。



而服务员、厨师、采购员三者中当任何一者发生变化时都不会影响到其他两者的正常工作,这正是三层结构各层之间的“高内聚,低耦合”特点。




3、三层结构的优势与劣势

优势:
结构清晰、耦合度低
便于系统的维护与扩展
利于开发任务同步进行
劣势:
降低了一定的性能



4、实现三层业务实

一张图胜过前言万语



看到这个图有人可能会问,不是三层吗?你这图里面怎么有四层?严格的说,实体层(Entity)不能算一层,它其实仅仅是一个类,说它实体类跟合适。

三层架构搭建好之后,有一个问题需要解决,使用什么在三层之间传递数据呢?
目前通用的解决方法有两种:一种是使用实体类在三层之间传递数据,一种是使用DataSet在三层之间传递数据。
使用实体类的主要好处在于实体类是一个比较易于控制的对象,它具有面向对象的基本特征,可以自由的向实体类添加行为等。
实体类是业务逻辑对象的基础,用面向对象的思想消除了关系数据与对象之间的差异。
实体类通常是一个存储应用系统信息的数据表,将数据表中的字段定义成属性,将这些属性封装成一个“类”,就是实体类。


好了,关于三层架构的基本理论知识我先介绍到这,我将会在下一篇博客中用一个实例进一步说明三层架构的基础知识。请关注我的博客。

posted @ 2014-03-16 16:59  飞蛾飞吧  阅读(426)  评论(0编辑  收藏  举报