三层架构深入认识(二)

来源:互联网 发布:如何去痘印 知乎 编辑:程序博客网 时间:2024/05/01 16:17

http://blog.csdn.net/yjjm1990/article/details/7199625

上面的这篇博客,是我总结的网上的一些内容,我认为,这些内容只是表面上的内容,下面来谈谈我的理解


          随着学习的不断深入,对三层架构的认识也在一步步的加深着。

      开始的时候,我感觉到很奇怪,为什么要用三层架构呢?大家都能理解,用了三层之后,程序的执行会在一定的程度上变慢(影响很小,我们很察觉)。而且,还会增加开发的难度,增加代码量等等!

       三层架构都有什么东西

       表示层(UI):表示层是直接与用户相关的(User Interface),是用户可以看到的。比如我们看到的用户登录界面、用户操作界面等等。在这一层中,当然会有相应的代码,但是,这些代码只是涉及到与用户界面相关的操作,比如:界面的切换、用户输入的有效性等等。
业务逻辑层(BLL):顾名思义,这一层的内容是涉及到业务逻辑部分.而且,既然分出了这一层,那么这一层就只能是业务逻辑,不能写其它功能的代码(比如SQL语句),如果在这层涉及到了底层(DAL层)的操作的话,那么我们分出这一层也就没有意义了!
数据访问层(DAL):一般对于比较大型的项目的话,避免不了会和数据打交道的,我们会自然而然想到对数据的操作(主要是增、删、改、查)等操作。

三层架构的好处与面向对象

我认为三层架构与面向对象是分不开的,如果说没有面向对象的话,那么也就不会有今天的三层架构。

我们都知道面向对象的几大特性:抽象、封装、继承、多态,也正是因为面向对象的这几大特性,实现了所谓的面向对象的几大好处:可维护、可复用、可扩展、灵活性好!

使用面向对象的这几大特性,怎么才能实现所谓的这几大处呢?

正是通过在三层架构、设计模式等思想,来体现并实现面向对象的这几大好处。

抽象、封装

我们再来看看三层架构,不就是面向对象的体现吗?通过对功能进行抽象与封装、让每一层各司其职。从而也就达到了所谓三层架构的好处(也就是面向对象的好处):可以复用、易维护、容易扩展。还有,在每一层中,通过对类和类之间的关系定义,达到了“高内聚、低耦合”
1、复用:主要表现在用户层(UI)与数据访问层(DAL),因为业务逻辑一般是固定的,所以这一方面表现不明显。比如,第一次开发的用户(UI)层是C/S模式,如果抽象与封装做得好的话,那么几乎可以不修改代码,而直接用到B/S的项目上,即用网页的表示层替换窗体(from)的表示层;还有,如果原来系统的数据访问层(DAL)是用的SQL数据库,现在新的需求只是所用的数据库不同,那么可以直接对数据访问层(DAL)进行修改,而其它各层几乎保持不变。
2、易维护:其实在第一点中,也就是易维护的一个表现;还有因为三层架构中,每一层的功能都很清楚,那么,如果有新的需求,添加或者修改某些功能,那么也会很容易找到入手点;同时,我认为,三层架构也是“面向接口编程”的产物,因为三层架构是向下依赖的,所以,只要上层的接口不变,那么修改就不会涉及到上层,也就降低了修改维护的工作量。
3、容易扩展:说实现这一点在,在三层架构中体现不是很明显,不过,既然在前面已经说过了,三层架构是“面向接口编程”的产物,那么存在这个优点也是毋庸置疑的。举个例子:简单工厂+反射+配置文件+三层架构实现数据库的访问:http://blog.csdn.net/yjjm1990/article/details/7212374,如果添加新表等,可以直接在D层进行扩展就好,而对其它的类没有影响。
4、安全性:三层架构,还有一个明显的好处就是安全性。因为用户只是接触到与自己相关的UI层,而不会有机会接触到于数据库的操作,那么,安全性也就提高了;而且三层架构,每一层也可以不在同一台电脑上,那么用户也没有机会接触到下层的数据。
5、当然三层架构还有一些其它的好处,比如利用团队开发等等


原创粉丝点击