机房重构---由组合查询引发的思考

  前言:

    不要基于代码编程,要基于图形进行软件设计。

                                                           ---米老师

    As mentionedabove,是上上个周四晚上锁门时候在小会议室听到米老师给九期师哥师姐讲系统时候的一句话,让我很是触动。Why?

    有个问题不知道大家思考过没有,比如在《设计模式》学习过程中,我们照着代码“照葫芦画瓢”似的把代码敲了出来,貌似自己真的懂了,但是真正让自己去实践的时候,我们能做出来吗?或者在敲机房时候,有些难点我们是模仿“前人”博客做出来的,程序能跑起来了,代码自己也理解了,就觉得success了,但是这些东西真的变成了你的了吗?

    针对组合查询,设计之前我有自己的思路,通过设置全局变量来传递sql语句,也就是说sql语句是在U层通过选择下拉菜单之后就“拼接”好了,通过传到全局变量,用到D层的sqlhelper函数中去,之后按照老样子返回DataTable表显示在DataGridView控件上,当照着自己的思路做的时候,发现1、U层逻辑判断很大,而且再加上转义函数等,绝大多数的代码都在U层,B、D、就是走了个形式而已,这样还不如直接在U层写ConnStr连接数据库…… 2、别人用到的模板方法、存储过程我不知道怎么去用,虽然讲设计模式看了两三遍,存储过程的资料也子在网上有搜……

    怎么办?查资料(博客),我的组合查询参考了徐凤竹的博客,邵鸿鑫师哥的博客,刘晓春师哥的博客……,原理基本一致,通过“具体查询类继承父类模板,父类对外观类、B层对象的实例化,走七层的套路,调用D层中的Query方法,唯一不同的地方在于sql="COMBINEQUERY"”(将sql语句变为存储过程),其他的都是七层的老套路,这样就把这个过程中的两个两点“模板方法”和“存储过程”很好的应用到了系统之中。

如图:

机房重构---由组合查询引发的思考_第1张图片

    本篇博客,将不具体展示代码,大家的这块代码都很相似,我更想谈谈通过组合查询怎样将别人的代码转变成自己的东西,怎样“照葫芦画瓢”,一个很好的办法就像米老师所言“基于图形编程,有了一幅图咔咔咔代码闭着眼就出来了”。

    As shown in theabove figure,大框架是7层思想,按照老套路,创建接口、D层、工厂、BLL层、外观、U层,之后重点在U层如何去复用父窗体,如何在D层sql语句中调用存储过程,以及在数据库中将这个可以灵活被使用的存储过程写出来,这才是最重要的,我觉得编程思想、思路要比实现代码更重要,借鉴别人的东西,要将来龙去脉理清之后整理为自己的一幅图,这样在敲代码、敲类似的代码,乃至于在面试的时候,你的脑海中有了这幅图,面试官问什么,你都可以直接去图中去找到需要的信息,而不是像照葫芦画瓢那样重新理一遍思路。

    写着写着发现没有技术方面的东西,但我觉得,这些更是如何发挥、提高技术的一个概述,组合查询,没什么难的。


你可能感兴趣的:(机房重构---由组合查询引发的思考)