【三层】宏观总结

来源:互联网 发布:淘宝三星手机官网 编辑:程序博客网 时间:2024/06/05 07:52

            学三层也有一个多星期了。中间断断续续的没有做好总结,先来一篇宏观总结吧,在验收之后再附上一篇详细一点的总结。。

          【概念】   首先,我们所说的三层从概念上来分的话,分为显示层View/UI、业务逻辑层BLL(Business  Logic   Layer)、数据访问层DALData  Access    Layer)。看完三层,自己认为其实之所以要分出三层来其实是为了避免以前两层中应用界面与数据库管理之间的偶联问题,三层中多出一个业务逻辑层就是充当中介的一个角色,避免应用界面与数据库直接的打交道,这样解偶联之后有利于软件后续的维护或者变动。下面一幅图说明两层和三层之间的差别。。


             【什么时候用三层?】我觉得这个是一个很容易理解的问题,就好比我们如果一共就有三本书,那我们直接将它们都放在一起,当我们找其中一本的时候也都是一目了然的事情,很容易找到,但是,如果我们有很多本书,并且什么类别的书目都有,那么当我们要找一本自己想要的书的时候,如果将它们都放在一起,那么就会显得困难很多,我们要一本一本的寻找,这个时候我们就有必要去买一个书架了,然后我们将不同的来别的书放在不同的书架层上,这样当我们找的时候就会容易也方便很多。就像是一个软件程序,如果这个程序很小很小,甚至根本就没有涉及到数据库,我们当然就没有必要再去将三层的这个“书架”给它框上,直接将代码都写到一起就可以,但是如果我们的程序足够大,并且业务逻辑复杂,数据存储也到了一定的程度,这个时候就涉及到了解偶联的问题,我们就要找一个结构将这些代码都分门别类的放在一起,这样就不至于造成互相偶联,结构复杂的问题了,这时我们将它分为三个层次,那就是显示层、业务逻辑层、数据访问层。。。

         【作用】一、数据访问层的作用:

        1、从数据源(DAL不仅仅能访问数据库,还可以访问文本文档之类的)加载数据(Select

    2、向数据源写入数据(InsertUpdate

     3、从数据源删除数据(Delete

        数据访问层其实我觉得就可以直接理解为我们的数据库,它只管保存数据,数据库中的数据可以被删除,被查看,被更新,也就是我们平常所说的曾删改查的功能。它只提供基本的数据访问功能,不包含任何业务相关的逻辑处理

      二、显示层

         

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

    2、采集用户的输入信息

        显示层可以直接理解为我们平时设计软件时候的界面,界面中只是会显示一些要给用户看的信息,而一些不需要给用户看的数据就会保留在数据库中,不给用户看到,这样也不会给用户的使用带来太大的困难,所以我们设计软件界面的原则就是用户至上,兼顾简洁。。此外,我们的显示层还会有一些需要用户输入信息的文本框,用来采集用户输入的信息,然后再将这些信息间接提供给数据访问层。。所以,UI层只负责显示或采集用户操作,不包含任何业务相关的逻辑处理。

      三、业务逻辑层

      

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

                 2、  UI中获得用户指令和数据,执行业务逻辑

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

 

     BLL的职责机制

                    UI——BLL——UI

        UI——BLL——DAL——BLL——UI      从它的责任机制中我们也能够看的出来,BLL层充当了显示层和数据访问层的一个中介的角色,以避免显示和数据管理层发生紧偶联造成不必要的麻烦。它是只负责逻辑处理,我们将逻辑都抽象出来不跟显示层混在一起,这些逻辑负责从显示层获得用户的一些指令或者数据,然后通过判断这些数据到底应该写入数据库还是执行其他操作,或者从数据库中调取某些数据显示给用户,就像是我们的学生信息管理系统,当我们在文本框中输入一些学生的信息的时候,逻辑层会判断一下,如果我们输入的格式不对,那么逻辑层就会直接反馈给用户操作错误的信息,如果我们输入的信息正确,就会从数据库中调取与这些信息相关的所有数据显示给用户。。。BLL只负责处理业务逻辑,通过获取从UI传来的业务指令,决定执行业务逻辑。在需要访问数据源的时候,直接交给DAL 处理,处理完成之后返回必要的信息给UI。。。

     【总结】我们敲的登陆的小例子,可以说,麻雀虽小,但是五脏俱全,在这个基础之上,我们了解了三层,在我们敲一个大一点的系统的时候就会像是我们将所有的书都分门别类的放在了一个书架上。。。期待我的重构。加油。

 

0 0
原创粉丝点击