日期:2014-05-17 浏览次数:20825 次
在我们提高班,到现在为止机房收费系统是每个人的必做项目,而且不止一遍。但是每一遍有每一遍的意义。
第一遍,我们用的VB6.0,当看到这个系统是自己一行一行敲出来的时候,心里有种不敢相信的感觉,所以我们
建立了兴趣,建立了信心,只要坚持,我们一定能够成功。
第二遍,用VB.NET,这一次就说不好要重做几次了。我们学习了分层,所以在这要体验分层带来的好处,分层
带来的纠结,分层分了半年多了,却发现分的还是不好。
第三遍,是基于第二遍的,因为这次,要体验合作开发的快乐。
经过上次老师讲解,在讲完的当时,我发现,原来是这个样子啊。但是好奇心让我,不得不想着去做两个Demo
来验证一下。
首先,说一下这个系统的样子,系统采取经典三层架构,然后添加了外观模式来对功能进行模块的划分,还用了
抽象工厂加反射来实现数据库的更换方便。下图是架构图。
此架构通过抽象工厂加反射使得工厂和DAL层没有依赖的关系,所以在生成的过程中,DAL层的DLL是不会生成
到其他层里面的bin的Debug下面的,也就使得如果不对DAL层进行那么一点点处理,那么是会报错的,为什么报错自
己研究。
我用了两种方法,一种是在UI层添加了对DAL层的引用(是万万不可取的,因为在架构图上,是没有任何层对DAL
层进行了依赖。第二种就是讲DAL的生成路径改成了UI下的bin的Debug。
对于第一种,因为违反了架构图,所以做法不可取,但是,是不是我在UI层添加了对DAL层的引用,那么编写好
的程序打包后DAL不是仅仅打包成一个.dll文件,而是将DAL.dll文件打包到UI中了,那么在更换了DAL.dll后,程序就
无法运行。按照上面的架构来说,就是说BLL中原来的登陆检查是只检查是否已登陆,那么我现在讲BLL中的登陆方