谈到三层,大家脑子里会立马浮出:显示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。就是将整个业务应用划分为这三个层次。
三层结构是基于模块化程序设计的思想,为实现分解应用程序的需求,而逐渐形成的一种标准模式的模块划分方法。目的是为了解耦合,也是就是实现“高内聚、低耦合”的思想。
显示层UI |
通俗的讲就是展现给用户的界面,及用户在使用一个系统的时候他的所见所得 |
业务逻辑层BLL |
针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。 |
数据访问层DAL |
该层所做事物直接操作数据库,针对数据的增删改查等 |
下面我们香葱一个例子来初步认识三层,帮助我们理解。
我们知道,饭店里要有服务员、厨师、后勤人员。各个员工各司其职,服务员只管接待客人,向厨师传递顾客的需求;而厨师只管烹炒顾不同口味、不同特色的美食;后勤工作人员只管提供美食原料。
什么情况要我们没必要使用三层呢?
1、业务逻辑简单的情况下没必要使用,因为三层结构也是存在缺点的,不是任何时候使用都恰当。
2、没有真正的数据存储层,所以也就不需要访问数据层。
那么什么情况下我们使用三层呢?
抽象出业务逻辑层,当业务复杂到一定程度,数据存储到相应的数据库或独立的数据存储介质,需要使用三层。把数据访问脱离开业务单独存在,把业务脱离开UI单独存在(UI只需要呼叫业务访问层实现和用户的交互)
通过学习王继斌老师的三层视频,初步认识了三层的作用。
各层的作用
|
作用 |
UI |
向用户展现特点业务数据 采集用户的输入信息和操作
|
BLL |
从DAL获取数据,以供UI显示用 从UI中获取用户指令和数据,执行业务逻辑 行UI中获取用户指令和数据,通过DAL写入数据源 |
DAL |
从数据源加载数据(Select) 向数据源写入数据(Insert、Update) 从数据源删除数据(Delete) |
三层架构的优点:
1、开发人员可以只关注整个结构中的其中一层
2、可以很容易用新的实现来替换原有层次的实现
3、可以降低层与层之间的依赖
4、有利于标准化
5、有利于各层逻辑的复用
同样他也有它的缺点和不足之处:
代码量太多,执行速度慢。所以他不适用于对执行速度非常高的系统,会降低系统的性能,也会增加开发成本。
总结:
以三层架构模式开发出来的软件,极大的增加了软件的可维护性,但是还要权衡利弊,看看是否需要用到它。