一、对组合查询的思考:
第一次机房的组合查询我是这样做的:因为发现涉及到组合查询的几个窗体页面的功能大致都是一样的,于是我完成了一个窗口的代码,然后复制粘贴到其他的窗体页面中。当时自己还为这点小聪明窃窃欢喜,不用敲这么多代码,粘一下就搞定了!~现在自己明白了,如果自己贴过来的代码有一处有问题,那么自己贴了几处就要修改几次,这样真的好吗?当我看了《大话设计模式》中的“模板方法模式”,突然觉得有了思路。
二、模板方法模式
2.1 书中讲到:
考试时,试卷是一样的,只是学生的姓名和答案会有不同。于是想到组合查询一类的窗体,操作员工作记录,学生信息维护,学生上机统计信息,他们的基本功能都是类似的,只是选择的内容不同而已。我们可以将相同的内容抽象出来提取到父窗体中实现,将不同的内容抽象成一个虚方法,让各个子类去实现自己的部分。 于是模板方法就有了。
2.2 关于模板方法的定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法很重要的思想是子类继承父类,通过重写实现功能。
模板方法的结构图:
三、如何使用模板方法建立组合查询
3.1建立父窗体(其实就是普通的窗体,只是要用它当做父窗体用),添加相关代码。
3.2建立子窗体。(这个子窗体要注意,它要选择要继承的父窗体)
3.3效果图:
3.4代码参考博客:
组合查询-模板方法black
四、小问题解答:
4.1 如3.3图所示,当子窗体继承父窗体的控件时,控件左上角会有个小锁的图标,此时的子窗体不能再修改自己的属性,原来问题出在父窗体控件的属性(Modifiers),此时只需将属性值改为“Protected”,即可在子窗体上重新编辑控件。
五、小结:
完成了组合查询,真正被设计模式的魅力所吸引。一定要认真学习研究设计模式,让自己用的越来越好!
原文链接:https://www.f2er.com/vb/256269.html