三层构架总结

来源:互联网 发布:js淘宝购物车的实现 编辑:程序博客网 时间:2024/06/14 19:53

一、三层结构概念

   所谓三层结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里的三层体系,不是物理上的三层,也 不是简单的放在三台机器上就是三层体系结构,也不仅仅有B/S应用才有三层体系结构。三层结构是指逻辑上的三层,是可以放在同一台机器上的。

通用三层结构模型:
这里写图片描述

中间层通常包括业务逻辑层(Business Logic Layer,简称BLL)、数据访问层(Database Access Layer,简称DAL)和数据对象模型层(Database Object Model Layer,简称DOM)。

而我们通常说的三层结构通常是指数据访问层、业务逻辑层和表示层。

(1)表示层(UI):
位于最上面,展现给用户的界面,即用户在使用一个系统的时候,他的所见所得。只负责显示和采集用户操作,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。不包含任何业务相关的逻辑处理。
(2)业务逻辑层(BLL):
负责处理业务逻辑,是架构中的核心,处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。(1、从DAL中获取数据,以供UI显示用(DAL->BLL->UI);2、从UI中获取用户指令和数据,执行业务逻辑,将结果返回给UI(UI->BLL->UI);3、从UI中获取用户指令和数据,通过DAL写入数据源(UI->BLL-DAL->Bll->UI))

(3)数据层(DAL):
只提供基本的数据访问,与数据源打交道:取数据、写数据、删数据(增(Insert)、删(Delete)、查(Select)、改(Update))。将这些操作封装成函数以供调用即可。是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。

三层之间的数据传递方向

这里写图片描述

二、为啥需要三层架构?

当业务复杂到一定程度的时候,当你的数据存储在独立的存储介质。
同时本着“高内聚,低耦合”;”开闭原则“,用三层结构更容易复用,扩展,因此这个时候需要使用三层结构。

这里写图片描述

三层的实际应用:

这里写图片描述

三、什么情况下需要?

业务逻辑简单,没有真正的数据存储层

四、应用所遵循的原则:

(1)DAL 只 提 供 基 本 的 数 据 访 问 , 不 包 含 任 何 业 务 相 关 的 逻 辑 处 理 ;
(2)UI 只 负 责 显 示 和 采 集 用 户 操 作 , 不 包 含 任 何 的 业 务 相 关 的 逻 辑 处 理 ;
(3)BLL 负 责 处 理 业 务 逻 辑 。 通 过 获 取 UI 传 来 的 操 作 指 令 , 决 定 执 行 业 务 逻 辑 , 在 需 要 访 问 数 据 源 的 时 候 直 接 交 给DAL 处 理 。 处 理 完 成 后 , 返 回 必 要 数 据 给 UI 。

五、三层与实体层之间的关系

这里写图片描述

为什么会出现实体层?
上面那个图已经很好的展示了,实体层可以理解为一个顾客,三层可以理解为饭店中的服务员,厨师,采购员。饭店就是为顾客服务的,所以必须要有实体层来导向这一步步事件的发生。

六、三层设计的优缺点:

优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点:
1、降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
3、增加了开发成本。

原创粉丝点击