【三层架构】基础总结

来源:互联网 发布:免费的电子书软件 编辑:程序博客网 时间:2024/05/29 12:32

前言


    之前很多应用程序的开发都是基于两层结构的,它们的特点是:数据库访问和用户类型判断逻辑放在一起实现;用户界面层直接调用数据访问实现;整个系统功能放在同一项目中实现。它的原理是用户界面层直接与数据库进行交互,还要进行业务规则/合法性校验等工作。两层结构的模型图如下所示:




    这种结构存在着很多局限性,比如:一旦用户的需求发生变化,应用程序都需要进行大量修改,甚至需要重新开发,给系统的维护和升级带来了极大的不便;用户界面层直接访问数据库,会带来很多安全隐患。为了克服两层结构的局限性提出了三层结构。


什么是三层架构

 
    架构,又名软件架构,是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口来实现。软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件架构作为满足不同用户需求的实际系统设计方案的基础。

           所谓三层,相对于两层,是在客户端与数据库之间加入了一个中间层,也叫组件层。而这里所说的三层架构,不是指这种物理上的三层,不是简单放置三台机器就是三层架构,也不仅仅B/S应用才是三层架构。




   我们本文所说的三层架构,是指逻辑上的三层,即:使这三个层放置在一台机器上。三层架构的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换。

   

   中间层包括业务逻辑层和数据访问层,所以分开的话,如下图所示:




    所以可知,我们说三层架构的定义为:通常意义上就是将整个业务划分为三个层次,分别为界面层(User Interface Layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data Access Layer)。




为什么要用三层


    区分层次的目的是为了实现“高内聚,低耦合”的思想。在软件系统架构设计中,分层式架构是最常见,也是最重要的一种Web下的应用结构。


三个层次的功能


    界面层:也可以叫做表示层,只负责显示和采集用户的操作。

    数据访问层:负责数据库的访问,简单的说就是实现对数据表的Select、Insert、Update、Delete操作。

    业务逻辑层:对数据层的操作。通过获取UI传来的操作指令,对数据业务逻辑进行处理,处理完成后,返回必要的数据给UI。如果说数据层是积木,那逻辑层就是对这些积木的搭建。


三层的引用关系


    数据访问层不能引用界面层和业务逻辑层;

    业务逻辑层需要引用数据库访问层;

    界面层直接引用业务逻辑层,可能会间接引用数据库访问层;




三层架构优缺点


   优点:有利于实现各层逻辑的复用;在后期的维护中大大降低了维护成本和维护时间;便于开发人员之间的合作,只要遵循一定的接口标准就可以进行并行开发了。

          

    缺点:降低了系统的性能。很多业务本可以直接访问数据库的,如今却必须通过中间层来完成对数据库的 访问;有时会导致级联的修改。如果在UI层需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的BL层和DA层中都需要增加相应的代码。


小结


      三层架构一般用于复杂程序的设计,如果是很简单的程序,完全没必要用。不过,何为复杂的程序?何为简单的程序?这就需要根据自己的经验来判断了,做的多了,才能明白什么时候该用,什么时候不该用。想要将它用在刀刃上,还是要在实践中不断的去总结和思考。

1 0
原创粉丝点击