三层架构笔记

    三层架构(3-tier application)通常意义上的三层架构就是将整个业务应用划分为:

 

表现层(UI),逻辑层(BLL),数据访问层(DAL).

 

   其三层系统的分层结构如图所示:

 

DAL(Data Access Layer) --数据访问层

 

        DAL:主要是对原始数据的操作层,而不是对原始数据,换句话说,是对数据的操作,

 

不是数据库,具体为业务逻辑层或表示层提供数据服务.简单的说法就是实现对数据表的

 

Select,Insert,Update,Delete的操作.

 

 

     数据访问层:有时候也称为持久层,其功能主要是负责数据库的访问,可以访问数据

 

库系,二进制文件,文本文档或是XML文档.

 

   主要是看你的数据层里面有没有包含逻辑处理,实际上它的各个函数主要完成各个对

 

数据文件的操作,而不必管其他操作.

 

 

DAL的作用:

 

1.从数据源加载数据(Select)

 

2.向数据源写入数据(Insert/update)

 

3.从数据源删除数据(Delete)

  

DAL中常用的技术:

 

1.ADO.NET+SQL语句

 

2.O/R Mapping框架

 

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

 

UI(user interface)---显示层

 

UI:展示给用户的界面,即用户在使用一个系统的时候他的所见所得.

 

 

UI作用:

 

向用户展现特定业务数据

 

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

 

UI主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问.

 

UI(最上层),离用户最近,用于显示数据和接收用户输入端数据,为用户提供一种交互式操作

 

的界面.

 

UI设计的原则:

 

 用户至上,兼顾简洁

 

 

UI中常用的技术:

 

Windows Form:Form Control

 

ASP.NET:aspx,ascx,master,html

 

 

BLL(Business Logic Layer)---业务逻辑层

 

BLL:针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理,主要负责

 

对数据层的操作,也就是说把一些数据层的操作进行组合.

 

 

BLL的作用:

 

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

 

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

 

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

 

       BLL无疑使系统架构中体现核心价值的部分,它关注点主要集中子啊业务规则的制定,

 

业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域逻辑有

 

关很多时候,也将业务逻辑层称为领域层.

 

       业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到数据

 

交换中承上启下的作用.由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对上

 

层而言是无知的,改变上层的设计对其调用的狄成而言没有任何影响.如果在分层设计时,

 

遵循了面向对象的思想,那么这种向下的依赖也应该是一种弱依赖关系.因此在不改变接

 

口定义的前提下理想的分层式架构,应该是一个支持可抽取,可替换的"抽屉"式结构.正因

 

为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同

 

的角色.对于数据访问层而言,它使调用层,对于表面层而言,它使被调用层者.依赖于别依赖

 

关系都纠结在业务逻辑层上.

 

BLL的职责机制:

 

UI->BLL->UI

 

UI->BLL->DAL->BLL->UI

 

BLL,DAL,UI都要添加Model引用

 

BLL添加DAL /Model引用

 

 

总结:

 

三层架构的优点:

 

1.开发人员可以只关注整个结构中的其中某一层

 

2.可以很容易的用新的实现来替换原有层次的实现

 

3.可以降低层与层之间的依赖

 

4.有利于标准化

 

5.利于各层逻辑的复用

 

6.结构更加的明显

 

7.在后期维护的时候,极大地降低了维护成本和维护时间

 

三层架构缺点

 

1.降低了系统的性能。如果不采用分层结构,很多业务可以直接造访数据库。以此获取

 

相应的数据。如今却必须通过中间层来完成。

 

2.有时候会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表现层中需

 

要增加一个功能,为保证器设计符合分层式结构,可能需要子啊相应的业务逻辑层和数

 

据访问层中都增加相应的代码。

 

3.增加了开发成本。

 

 

三层架构具体应用--原则:

 

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

 

2.UI只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理(拿来主义)

 

3.BLL负责处理业务逻辑.通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据

 

的时候直接交给DAL处理.处理完成后,返回必要数据给UI(UI->BLL->DAL->BLL->UI)

 

三层架构遵循的规则:

 

1.UI层只能是一个外壳,不能能包含任何BizLogi的过程

 

2.设计时应该从BLL出发,而不是UI出发,BLL层在API上应该实现所有BIZLogic,以面向对

 

象的方式。

 

3.不管数据层是一个简单的SQLHelpler也好,还是嗲有Mapping过的Classes也好,应该

 

在一定的抽象程度上做到关系无关。

 

4.不管使用COM+Enterprise Service,还是Remoting,还是WebServer之类的远程对象技术,

 

不管部署的时候是不是真的分别部署到不同的服务器上,最起码在设计时候要考虑,更

 

远的,还得考虑多台服务器通过负载均衡做集群。

 

 

 

你可能感兴趣的:(三层架构笔记)