通过三层的学习,实现了三层的登录过程,对三层稍有认识,但是并不深入;三层完了就是七层或者更多的层,开始的时候真是一点都不理解,七层到底多加了什么?该怎么加,简直是一头雾水,查了些材料和同学进行交流,得知其实七层就是在三层的基础上再扩展,更加详细的分类,让系统更加的减少耦合,达到容易维护的目的。
我的理解
原来我们说的三层实际上是四层,因为除了UI层、BLL层和DAL层,还有实体层,用来封装数据,所以应该说是四层,那么我们现在所说的七层,真正数的话应该说是八层,就是在原来的基础上添加了设计模式和接口而已,他们是外观模式、抽象工厂模式,接口还有一个SQLHelp,所以板着手指数一数就是八层啦。不知道我这样说是不是合理,现在想的还很简单,需要大家指正,一起进步。
都用登录窗体来说
【三层(四层)】
UI+BLL+DAL+Entity
包图
理解
首先UI层和用户交流,用户输入了用户名和密码,然后通过调用B层的方法实现了和B层的联系;这是B层开始登场,通过调用D层的方法,进行逻辑处理;最后就是D层进行和数据库碰面,实地考察用户输入的信息到底正确与否,并把结构反馈给B层,进而传给UI层,显示在用户的面前。
这样的三层结构虽然实现了层与层的分类,各自负责自己的职能,但是还是不能达到我们的要求,不能完全解耦,因为三层还是联系的,是层层相依的,一旦其中一个层次出现了问题,其他的层次必然崩溃,所以为了更好的解耦合,实现易维护又出现了更多的层,那就是七层。
【七层(八层)】
UI+BLL+DAL+Entity+Facade+Factory+Interface+SQLHelp
包图
理解
目前的理解是这样的:我先把我几个层次进行排序:Entity-UI-Facade-BLL-Factory-Interface-DAL-SQLHelp
Entity的功能说大不大,说小不小,但又是不可缺少的,除了工厂,每个层次都会调用它,非常无私的一层,但是里面的内容很简单,就是对属性的封装,根据表的信息来建立,我认为是众多层中最最简单的一个了;下面就来说说其他几个层吧。还是UI层,用户输入了信息,例如用户名和密码,但我们不知道是不是正确,所以就需要向下传递了;这里没有直接传给B层而是中间多了一个Facade,它是把负责的操作简单化,不需要知道具体的操作过程,就可以实现我们想要的功能,它是和B层直接联系的,通过调用B层的方法来达到简化的目的;然后B层也没有直接和D层交互,而是中间多了工厂,添加工厂主要是为了以后修改访问的数据库比较方便,通过配置文件和反射实现,当更改数据库的时候不需修改大量的代码,而是直接找到需要运行的实例化的类就可以了;然后需要的就是接口了,接口中只是定义了方法,但是没有具体的方法体,具体的方法还是在D层中;D层通过实现定义的接口,进而对数据库中的数据进行操作;这里又要提到SQLHelp,SQLHelp是对D的补充或者说是简化,当需要对许多许多表中的数据进行操作,即我们说的增删改查,我们就可以应用SQLHelp了,把增删改查的方法集中起来反在SQLHelp中,用的时候直接召唤就可以啦,而不用每用一次就写一次,减少了代码的冗余。
这就是目前我对七层的理解,还没有实现七层的功能,不知道理解的是否正确,先记录下来,等以后不断完善,欢迎大家指出我对问题,理论再多也不如实践,下一步就是实现功能,加油!