在做“机房”的过程中,有很多相同功能的窗体,在敲第一次的时候由于是处在学习和练习的阶段,对于重复的功能和代码还是比较待见的。因为初次在很菜的情况下自主建立一个系统,总想着多练练,能熟练些,不能说是背(也背不了),但想将其形成常识。
每次进步一点点。这次再做,虽说换了一种语言,但业务逻辑方面需要思考就少了很多。再加之,在此之前学习了设计模式。说起设计模式,心里没底,还好设计模式的讲解语言通俗易懂,常以小故事的形式进行引导。设计模式的目的是将程序设计成可复用性强、灵活性好、安全性高、性能稳定的软件。设计模式很重要的设计手段就是抽象和封装。重要的工具就是接口,运用接口,大大加强程序内部模块之间、软件之间的兼容性。
下面就是在抽象思想的指导下,对“机房”中具有极大相似度的四个组合信息查询窗体进行抽象合并,用一个窗体进实现。
四窗体“学生基本信息维护、学生上机状态查询、学生上机统计信息查询、操作员工作记录”对应各种的四功能。
1.信息查询,首要问题是解决查询条件的问题。
组合查询的条件到了确定功能确定以后,条件不再受数据表的影响,因为功能已唯一确定了对应的数据表,所有可以把所要查询的数据表的判断提前到窗体选择的时候。当数据表一确定,接下来的查询就只与界面信息有关系,而没有其他顾虑了。
查询条件既然由界面控制和获得,那么将界面信息做成一整套,封装起来,以便以前面进行衔接。
2.返回ComboBox中选定的项
界面信息,捕获后能直接使用的,没什么可说的,简单地传递就行。
界面信息,捕获后不能直接用,与数据库表的列名不符的,显示的是中文,便于用户的理解;而数据表中用英文(字母)命名,所以需要转化。
下面是最值得说的,其他的就“外孙打灯笼”。
Public Function chargefield1database() As String '返回cmbnName1 Dim field1 As String Select Case cmbName1.SelectedIndex Case 0 field1 = "CardID" Return field1 Case 1 field1 = "UserID" Return field1 Case 2 field1 = "UserName" Return field1 Case 3 field1 = "Sex" Return field1 Case 4 field1 = "Department" Return field1 Case 5 field1 = "Grade" Return field1 Case 6 field1 = "stuClass" Return field1 End Select Return Nothing End Function</span>