从三层到七层之机房登陆

开始机房也已经一段时间了,但是一直没有写东西,今天就来谈谈三层结构是如何到七层的吧!在谈论七层之前首先来回忆一下三层,三层架构是为了解决原来用户直接依赖数据库的问题,增加了业务逻辑层,降低层与层之间的依赖,从而来进行解耦的。这样做的优点就在于:使程序的结构更加明确,开发人员可以只关注整个结构的一层,可以很容易的用新的实现替换原有层次的实现。那么所谓的“七层”,则是加上外观和抽象工厂两种设计模式来进行的进一步解耦,这样更加符合设计的原则,使层与层依赖性更低。

三层和七层的比较

     三层架构:

 七层架构:

通过三层架构和七层架构的对比,可以很容易的看出,七层加入了Facade(外观类),Factory(工厂类)以及IDAL接口。接下来就简单说一下这样做的好处吧!

 添加外观类Facade

之所以要这样做,是为了将业务逻辑层和表示层分开,降低他们之间的依赖。学过设计模式的朋友一定知道外观模式,它的定义是:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

看完定义,估计大家也不会明白吧,举个简单的例子:假如U层需要调用B层中的很多的类,那它需要一个一个的去实例化,然后再调用他们的方法。可是在U层和B层之间添加了外观模式,就可以将这个工作放到Facade中去实现,然后U层调用Facade,这样就可以直接去调用B层中类的方法,并且由于外观的加入,U层根本不需要知道B层中有哪些类。从而减少了B层和U层之间的依赖。

使用外观的前后对比图:

抽象工厂(Factory)+接口(IDAL)

抽象工厂可以说是设计模式中的核心,这里可以简单回顾一下抽象工厂的定义:提供一个创建一系列相关或互相依赖对象的接口,而无需制定它们具体的类。说的简单一点就是:工厂就是用来创建对象的,它将B层中对象的创建放到工厂中来实现。这样就可以让具体的创建实例过程与客户端分离,D层中具体的类名也被具体工厂的实现分离,不会出现到客户端代码中。

除此之外,利用工厂中的反射机制很好的改进了对于类的实例化过程,并且通过接口实现了B层和U层的进一步解耦。

总结:

通过三层到七层的转变,将设计模式应用到实践,可以很好的帮我们完善程序的结构体系,使得我们的程序层次分明,编写代码瞬间变得简单起来,只要明白了这里面的层次结构,在层与层之间调用的时候就会清楚很多。在这段学习时间,也了解到了很多东西:DataTable的使用、泛型、SqlHelper等等。随着实践的增加,我的收获越来越多的。

时间: 2024-08-02 15:34:39

从三层到七层之机房登陆的相关文章

机房重构前奏——三层转七层

刚敲完三层的小例子之后,感觉还是很简单的,只是通过分层让不同的层次完成不同的工作,减少耦合性.可是接下来师父就直接给了一个大难题,让我将三层转变为七层,这对我来说相当困难,自己当时根本就不知道有哪几层,就开始搜.经过一段时间的思考后,终于能够初步明白登录的七层是那些了.下面是我画的包图: 三层的时候只有UI.BLL.DAL,七层只是在原来基础上添加了外观设计模式.接口和抽象工厂,通过分层来减小耦合度.接下来如何来实现各层之间的链接呢? U层:表示层,主要负责与界面设置. Imports Faca

三层扩展七层

在机房合作的过程中,采用三层(UI--BLL--DAL)的思想--扩展成七层,使用SVN合作开发. 开发过程中,数据的传输,方法的调用,那都是重要而频繁的事了.因为频繁,如果没有规划和管理,混乱就不可避免了,同时造成后期维护巨大的工作量,就像形成恶性肿瘤.由三层扩展到七层,正是通过从形式的布局上,尽可能地规避这一恶性肿瘤的滋生.借助形式,管理顺清逻辑.正如现在都在讨论的,从制度上,避免贪腐发生一样. 三层.将程序划分为显示层(UI层).业务逻辑层(BLL层)和数据访问层(DAL层). 由没有三层

机房重构—七层包图

机房重构有经典三层变为了七层,增加了外观层.工厂层,IDAL层.增加的这三层是对设计模式中的外观模式和抽象工厂+反射的应用,目的是为了更好的解耦和.外观层使得U层和B层之间的耦合度减小,在外观层中对B层的类.方法进行调用和组合来实现U层的需求,当需求有所变化时只需要改变外观和B层,或者只需要改变外观就可以满足需求的变动. 在IDAL的接口层定义接口,由DAL层进行实现,在factory层中通过配置文件来来决定实例化D层链接哪个数据库的类,在B层中通过工厂和接口来调用D层的链接数据库.举个例子来说

vb.net版机房收费——助你学会七层架构(二)反射+抽象工厂

上一篇咱们做好了准备工作,数据库设计和Entity层,现在介绍 4.反射+抽象工厂 反射:用来消除Switch和if的,这里我尽量简单地介绍,以便大家理解.反射其实用起来很简单,你就认为他就是决定:去某个地方找应该要实例化的类是哪个.怎么理解? '************************** '文 件 名:DataAccess '命名空间:Factory '内 容: '功 能: '文件关系: '作 者:邱慕夏 '小 组:邱慕夏 '生成日期:2014-06-09 9:17:51 '版 本

vb.net版机房收费系统——教你七层架构(三)—外观模式

上次我们看到了D层是怎样运作的,现在,我简单演示一下我的外观和B层是如何和U层和D层打交道的. 首先我跟大家说的是我的外观是按照界面功能划分的,粒度有点小,大家在做的时候,记得外观有几个就行了,但是不能没有,U层不能直接调用B层,这样就会增加U层和B层的耦合: '************************** '文 件 名:UserInfo_BLL '命名空间:BLL '内 容: '功 能: '文件关系: '作 者:邱慕夏 '小 组:邱慕夏 '生成日期:2014-06-07 17:36:4

vb.net版机房收费——助你学会七层架构(一)

我自己写机房的时候,看非常多高人的博客,各种的借鉴,当初务必的纠结,如今整个机房敲完了,写这篇博客给大家一个总体上的.简单理解的七层,期望大家看完这篇文章之后,不会这个纠结了. 首先大家得看了我的上一篇博客: http://blog.csdn.net/qiumuxia0921/article/details/33738319 我再说就会好说一点,大家仅仅要理解了那张包图之后就能够了. 首先我还是拿最老套.最简单.最先開始的样例Login開始: 1.我们要知道Login须要那几步:查询user表,

机房收费系统——“七层”登录

敲完了三层登录很长时间了,明白三层是怎么传递的,但是就是总是无从下手的感觉,别人都说敲几条线就明白了,但是,你懂得--这时我想起了米老师的一句话:不管怎么样,先听去做,做完了再说自己的想法.如果总是不下手,就永远不会进步.所以,我开始了登录的"七层"版. 先用一张包图来看看这"七层"里面是怎么进行传递的: 由图可知,这"七层'就是在三层的基础上继续对U层.B层.D层进行解耦.本来在三层中是U层接收传进来的数据,然后调用B层的方法,把数据传给B层,之后B层调

【机房重构】一步一步往上爬——七层中的那些事

机房重构开始已经一个多星期了,从最开始的理解登录到现在已经成功完成至少一次的"增"."删"."改"."查"的操作,现在在七层的这个大环境下,从最开始的奄奄一息,终于变得生龙活虎起来了. 之前总是听师哥师姐们说,敲完登录一条线了,后面就会很顺利了.可是,从我来说,事实并非如此.然而,磕磕绊绊,四个字足以形容我的这些天.不过,我心态好,我可以忍受一个人花时间调代码的孤独,再说,我也可以找小伙伴.找师父帮助我,我有什么理由不成功.

HCNA————第一课 经典三层网络拓扑,OSI七层参考模型

网络技术成长之路 经典三层网络拓扑分为3层,从下到上依次为接入层,汇聚层,核心层,外接一个路由连公网.如下图.1. 接入层一般放在接入层的设备性能都比较差,但是要求端口多(因为要连多台终端设备,比如PC).接入层一般放接入交换机.比如傻瓜交换机(插上线就能用的交换机).2.汇聚层放在汇聚层的设备因为要承载多台交换机的流量,所以性能比接入层的设备性能要好.比如策略性服务器si,即1,2,3服务器.一般配置信息要在汇聚层配置,因为如果配置信息出错,在汇聚层只会影响一个服务器下的交换机及终端,但如果在