您的位置:首页 > 运维架构 > 网站架构

三层架构概念

2017-05-09 10:29 281 查看

前言

三层是什么?在开始学习三层之前一点概念也没有。以前写面向过程的程序,不需要设计模式也不需要三层,虽然学完了设计模式但是不知道在一个大的程序中如何使用。直到看了三层的视频,第一遍看只是概念性的了解,视频中代码看得有些懵。直至第二遍第三遍按照例子敲下代码才有些懵懂,看来还是需要多联系多敲代码啊。

内容

1、三层是什么?

所谓三层体系架构,是在客户端和数据库之间加入了一个“中间层”,也叫组件层。这里所谓的三层体系,不是物理上的三层,指的是逻辑上的三层。三层包括UI显示层、BLL业务逻辑层和DAL数据访问层。

通用的三层软件模型如图:



三层结构软件模型如图:



2、UI显示层(User  Interface)

UI的作用:

1.向用户展现特定业务数据

2.采集用户的输入信息和操作

UI设计的原则:

用户至上、简洁兼顾。

UI中常用的技术:

Windows Form:Form、Control

ASP.NET:aspx、ascx、master、html

总结:

UI层就是展现给用户的界面,适应用户的需求而做出不同的界面(比如说现在流行的扁平化)。但是不能对数据进行直接操作,不和数据源直接打交道。

3、BLL业务逻辑层(Business  Logic  Layer)

BLL的作用:

1.从DAL中获取数据,以供UI显示用

2.从UI中获取用户指令和数据,执行业务逻辑

3.从UI中获取用户指令和数据,通过DAL写入数据源

BLL的职责机制:

UI→BLL→UI

UI→BLL→DAL→BLL→UI(从UI到访问数据源再反馈给UI流程)

总结:

BLL负责处理业务逻辑,通过获取UI传来的数据和指令,执行业务逻辑,在需要访问数据源的时候交给DAL处理。DAL处理完成后再返回来,然后传给UI层。

4、DAL数据访问层(Data  Accees  Layer)

DAL的作用:

1.从数据源加载数据(SQL Server中的Select)

2.向数据源写入数据(SQL Server中的Insert/Update)

3.从数据源删除数据(SQL Server中的Dalete)

DAL中常用的技术:

1.ADO.NET+SQL语句

2.O/R Mapping框架 NHiberate

3.访问SQL Server数据库时Lingerie to SQL

总结:

DAL与数据源打交道,对数据进行‘增、删、查’操作,但不对其进行‘改’的操作,修改任务交给外部处理。

5、Model数据模型

数据模型(Model)独立于三层,用来封装数据,在三层之间传输流通,上窜下蹦。为了避免三层之间相互应用,通常使用业务数据模型来传输数据。

6、什么情况下使用三层架构?

当业务复杂到一定程度后,当数据存储到相应的数据库或者一个独立的数据存储介质的情况下,使用三层架构。

使用三层架构的目的是把数据访问脱离开业务,把业务脱离开UI单独存在,UI只需要呼叫业务访问层就可以实现和用户交互。

当业务逻辑简单,没有真正的数据存储层的情况下不需要使用三层架构。

7、三层架构的优点:

三层结构的优点在于不必为了业务逻辑上的微小变化而迁至整个程序的修改,只需要修改商业逻辑层中的一个函数或一个过程;增强了代码的可重用性;便于不同层次的开发人员之间的合作,只要遵循一定的接口标准就可以进行并行开发了,最终只要将各个部分拼接到一起构成最终的应用程序。

三层结构的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互,这样会大大提高系统的安全性。

三层结构的应用程序更能够适应企业级应用日益增长的复杂度和灵活性的要求,并且通过软件分层的高内聚、低耦合的原则,实现扩展、维护和重用的要求,可以大大提高开发效率。

三层架构逻辑图:



总结

总结下来分为三个重要点:

1、DAL只提供基本的数据访问,不包含任何业务逻辑相关的逻辑处理。

2、UI只负责显示和采集用户操作,不包含任何业务相关的逻辑处理。

3、BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理。处理完成后,返回必要数据给UI。

接下来就是三层代码的实现了,请看下篇。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: