三层体系架构

在c\s服务器上运行的软件可以是这种样式的

三层体系架构_第1张图片

这是典型的两层结构,特点是:

        1.数据库访问和用户类型判断逻辑放在一起实现

        2.用户界面层直接调用数据访问实现

        3.整个系统功能放在同一个项目中实现

        4.进行业务规则、合法性校验等工作

        虽然看起来比较简洁,但是在实际中却有很多问题:如果用户的需求发生变化,应用程序都需要进行大量修改,甚至需要重新开发,给系统的维护和升级带来极大的不便;用户界面直接访问数据库,带来了很多数据库信息安全隐患。

        为了克服两层结构带来的问题,发展了三层结构体系。所谓的三层结构体系,就是在客户端和数据库之间加入了一些中间层,把客户端和数据库服务器分离开了,中间层中包含了业务逻辑层、数据访问层和数据对象模型层,是把两层中的客户端的功能拆分,是逻辑上的三层结构。


        三层结构体现了对程序分化的思想,不必为了某一个方面的改动而导致整个程序的修改,降低了耦合提高了内聚,增强了代码的可重用性,同时方便构件不同网络环境下的分布式应用。三层结构:显示层(UI)、业务逻辑层(BLL)、数据访问层(DAL),核心是业务逻辑层。

三层体系架构_第2张图片

        显示层的特点:1.向用户展现特定业务数据;2.采集用户的输入信息和操作;3.展现给用户的界面,即用户在使用一个系统的时候他的所见所得。设计原则:用户至上、界面友好、兼顾简洁。

        业务逻辑层的作用:从DAL中获取数据,以供UI显示用;从UI中获取用户指令和数据,执行业务逻辑;从UI中获取用户和数据,通过DAL写入数据源,接收用户的指令或者数据输入,提交给应用层做处理,同时负责将业务逻辑层的处理结果显示给用户。相比传统的应用方式,业务逻辑层对硬件的资源要求较低。职责机制:UI->BLL->UI;UI->BLL->DAL->BLL->UI,即:DAL所在程序集不引用BLL和UI;BLL需要引用DAL;UI直接引用BLL,可能会间接引用DAL。

        数据访问层作用:主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或XML文档,实现对数据表的数据操作。数据访问层并不是数据库,作用是对数据库中原始数据的操作,是为业务逻辑层或表现层提供数据服务的。

    具体应用原则:

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

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

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

并不是所有的软件开发都要用到三层结构,当开发的软件在逻辑上非常简单,或者没有真正的数据存储层即脱离了数据库的使用,这个时候就没必要非用三层结构来把简单问题复杂化;相反开发的软件逻辑非常复杂或需要数据库支持的时候,就要考虑用三层结构来简化开发难度。其实,三层结构和两层结构都可以实现相同的功能,但是三层的结构更加的解耦,各个模块更加的高内聚低耦合,还可以大幅降低软件开发中的复杂问题,有利于软件的顺利开发。三层非常有用,在运用时将更加深入的总结三层的用法。

你可能感兴趣的:(三层架构,软件架构,三层架构)