走在机房重构的路上之dt表头

             上一次的组合查询主要是写到了组合查询中如何使用模板方法,今天主要总结一下组合查询中使用模板方法的好处和弊端。

             记得当时《大话设计模式》中对模板方法这样描述道:模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。它提供的是代码的复用平台。而组合查询就是将不变的和可变的都混在了一起,不变的东西(窗体、加载的操作符和与或关系)在子类中重复出现。所以我们将3个组合查询的共同的代码或者窗体抽象出来作为超类,只在子类中保存自己与众不同的那份,比如对应的数据表、各自窗体中要加载的字段名。不得不承认虽然仅仅是三个窗体就已经提高了效率,但是利弊相对,一个事物有优必有劣,体现在组合查询中就是:

           在U层的dateGridView控件中要将加载回来的数据表的表头编辑成汉语,一般情况下,直接在控件中选择“编辑列”,如下图所示:

            走在机房重构的路上之dt表头_第1张图片

           但在组合查询中问题就来了,表头属于子类与众不同的东西所以不能通过父类窗体进行抽象和设置,那么在子类窗体中该如何设置,还是编辑列,或者是在form_load事件中加载某些代码。虽然是这么说,可是问题貌似没有那么简单:

       走在机房重构的路上之dt表头_第2张图片                 这该加载的也加载了,它还要怎么着?没有对控件进行加载,上面这段代码就白搭,为什么??看下面这段代码吧,看完一切就真相大白了

            '加载表格控件
        dtGroupQuery.Columns.Add("cardNo", "卡号")
        dtGroupQuery.Columns.Add("onDate", "上机日期")
        dtGroupQuery.Columns.Add("onTime", "上机时间")
        dtGroupQuery.Columns.Add("offDate", "下机日期")
        dtGroupQuery.Columns.Add("offTime", "下机时间")
        dtGroupQuery.Columns.Add("confumeTime", "消费时间")
        dtGroupQuery.Columns.Add("confumeMoney", "消费金额")
        dtGroupQuery.Columns.Add("status", "状态")
        '绑定数据源
        dtGroupQuery.Columns(0).DataPropertyName = "cardNo"
        dtGroupQuery.Columns(1).DataPropertyName = "onDate"
        dtGroupQuery.Columns(2).DataPropertyName = "onTime"
        dtGroupQuery.Columns(3).DataPropertyName = "offDate"
        dtGroupQuery.Columns(4).DataPropertyName = "offTime"
        dtGroupQuery.Columns(5).DataPropertyName = "confumeTime"
        dtGroupQuery.Columns(6).DataPropertyName = "confumeMoney"
        dtGroupQuery.Columns(7).DataPropertyName = "status"

        dtGroupQuery.AutoGenerateColumns = False
        '更改表格的表头名字
        dtGroupQuery.Columns(0).HeaderText = "卡号"
        dtGroupQuery.Columns(1).HeaderText = "上机日期"
        dtGroupQuery.Columns(2).HeaderText = "上机时间"
        dtGroupQuery.Columns(3).HeaderText = "下机日期"
        dtGroupQuery.Columns(4).HeaderText = "下机时间"
        dtGroupQuery.Columns(5).HeaderText = "消费时间"
        dtGroupQuery.Columns(6).HeaderText = "消费金额"
        dtGroupQuery.Columns(7).HeaderText = "使用状态"

          最后实现这样的效果,窗体加载后,控件的表头自动加载为中文:

      走在机房重构的路上之dt表头_第3张图片

            其实,加载控件不算难,但在生活中我们往往只追求大事物却忽略了最原始最基本的那些细节,也许真的像电视剧中说的那句话一样:生活不在乎跑多远,跑多快,有时停下脚步看看身后的风景也不是一件坏事。在组合查询中我很在乎自己一天能有什么收获,径直忽略了对这个控件的加载直接上手对表头进行设置,现在回想起来这个功能自己也知道如何实现,只是当时妄想没有不通过桥直接通往对岸的“高远目标”,所以走过组合查询这段风景我也该停下脚步好好回顾一下这一路上我走过的风景,好好看看周边和以前层被我忽略的风景。

          我知道现在有好多小伙伴都正在重构这条路上奋斗,大家记得时常停下脚步看看过去的和道路两边的风景。
           


          

          

你可能感兴趣的:(回顾,机房收费系统重构)