浅谈“三层架构”

           今天我们来谈谈三层和传说中的“七层”。

           三层:(先看图)

           

           首先,我认为学习三层并不太难,体如今三方面:认识不难、理解不难、它所展现的内容不难。

           “认识三层”,网上随便一搜“软件的三层架构”云云,各种文章眼花缭乱。简单说三层就是指“表现层UI、业务逻辑层BLL和数据訪问层DAL”。表现层主要处理用户与界面的关系,业务逻辑层当然是主要处理业务逻辑,数据訪问层就是处理有关数据库的系列操作,比方增删改查等。

           其次,理解三层不难。我们先说说它是怎么来的为什么要用三层

           三层是从两层的基础上发展演变而来的,两层就是表现层和数据訪问层,也就是没有BLL层的架构。在一些小的系统中,有时候我们确实不须要分三层,直接从界面传入数据,再通过操作数据库处理些简单的逻辑,最后返回结果给用户就OK了。但一些大型企业级软件,若是缺少了分层架构,将是灾难性的。

           为什么这么说?我们能够非常明显看出来,添�了BLL层后,业务逻辑有了自己的容身之地,不再和界面、数据有过多的联系了,也就是“解耦”了。不管是开发人员还是维护者,最最不希望看到的就是系统里大把的耦合,耦合既不符合面向对象,也不符合软工的要求。就像是让你把十几种颜色不同的乱线头一一缕清,谁愿意干?

 

 

           “七层”:

           除了解耦,三层架构还方便了代码重用。在这里,我们浅浅地说一下关于“七层”的故事。以下是一张“七层”图。

          

           我在这里加了引號,是由于“七层”事实上并不一定是七层,你甚至能够分为五层、六层、八层都行!七层仅仅是一个象征性概念,就是三层加了一些设计模式的应用。上边这张图就是加了设计模式中的抽象工厂+反射、外观模式。

           详细解释下,外观模式继续为UI层和BLL层解耦,使得UI层仅仅须要调用Facade中的几个方法返回最后结果即可了,UI层终于与一切业务逻辑和数据处理无关;抽象工厂+反射+配置文件是用来方便数据库的,有了它,老板再也不操心你换数据库了!

           详细实现过程中,你还能够分出sqlHelper类来放一些经常使用数据库操作过程,主要是那些反复性的,以降低DAL层代码量;另外,DBHelper也是个不错的选择,里边存放的是SQL Server/Oracle/OLEDB/ODBC等各类型数据库连接方式,方便数据库切换。

           综上,我们说三层架构实现了代码重用。

 

 

           再回到三层:

           上面还说到三层展现的内容也不难。从上图我们能够看出,事实上三层就是调用与实现的过程。

           下层并不须要上层的存在,它仅仅须要完毕自己的功能就万事大吉了。

           比方UI层和BLL层,不论UI层长得什么样子,WinFrom也好、Web也罢,甚至不同的WinForm造型都无所谓,BLL层仅仅须要处理好业务逻辑即可了,从UI层接收用户信息,最后再给出一个返回信息给UI层。

           BLL层和DAL层也一样:DAL层从BLL层获得推断是否与UI层用户输入数据同样等指令(仅仅是一个样例)进行数据处理,最后给BLL层一个值(相应为布尔值),BLL层对该值进行逻辑加工,再返回给UI界面,这个过程就结束了。

          强调一下,三层之间并非无联系,而是联系非常弱。

          关于三层的难点,我觉得是三层在系统中的应用,如何在三层架构下实现一个良好的类图结构,是当下须要考虑的重难点,随着笔者机房收费系统重构的进行,我们再做分析吧。

          本文的不合理之处,还请各位读者提出宝贵意见。

          

         

          

         

          

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值