VB.NET机房重构总结
机房收费系统是我们在提高班做的最多的一个系统,通过一遍遍的做这个系统学到了很多东西。
重构是用三层和设计模式做的
一、包图
U层主要是放界面数据的输入和界面的显示情况;B层主要放业务逻辑,系统的逻辑处理;D层就是数据库的访问,去实现接口层的方法;SqlHelper是助手类,对数据库的操作,增删改查;外观类就是重整一下B层类的结构,让U层和B层之间的耦合度降低;抽象工厂是让B层和D层的耦合度降低,随便换一个数据库只需要修改D层和配置文件就可以了,别的层不需要动。
我开始做的时候没有用SqlHelper类,D层的每一个类都有用到数据库的连接,增删改查,既然每一个类都要写,为什么不拿出来,这样就不用反复重复了。
二、时序图
下面是我画的时序图的历程:
第一次画的时序图:
第一次的画的时序图,生命周期很乱,没有搞清楚,而且逻辑也没有弄清楚。
最后一次画的时序图:
最后一次画的时序图相对来说更成熟一点。
三、技术问题
组合查询 我的组合查询一开始做的时候就想写在存储过程中这样拼接字符串就写在了存储过程中,很方便简单,但是这样想,在做的过程中由于在存储过程中的符号还有语法不是很熟悉,总是调不出来,于是就放弃用存储过程,打算在合作开发的时候好好研究研究。
路径问题 一开始做系统的时候,放配置文件,我自己想应该是放在D层,可是D层没有找到添加方法,反而在U层找到了,于是上网查了一下说是U层是主程序集,系统是从U层起来的,所有的dll放在U层的Bin中。运行的时候D层出现问题,是使用相对路径请确保当前目录是正确的。这时要把D层的路径改了,改到U层的Bin中,这样D层的dll就会自动拷贝到U层的Bin中。这也遵循了反射的原则:一切一U层的Bin文件夹的dll为中心。如果说是将D层的dll拷贝到U层的Bin中,虽然这样是可行的,每次都要拷贝,但是不能保证每次D层修改后重新生成dll之后都不忘记拷贝到U层Bin中。
存储过程中加事务 这次加了存储过程,没有加事务,但是却出现了一个问题,就是在执行存储过程中的语句出现错误时的情况没有处理,这时不要忘记加事务,一旦有问题出现,就会回滚,也就是说当第一个表修改完,可是第二表改修出现了异常而没能修改的情况下,第一个表和第二个表都要回到未修改的状态。
这次重构是一条线一条线写的,合作的时候要一层一层的写。学习是一个过程,在这个过程中我们每天都在进步,每天都会学到不一样的知识。未来,加油!