我们知道用于控制模型的参数是最重要的,程序中必然会反复使用这些参数,而且不一定是成批量使用,有可能只是用其中的一部份,这样辨识需要哪些参数的工作就很重要了。例如分辨用户选择了哪一个参数,当前要处理哪些参数。我之前采用的是硬件编程的位逻辑控制的方法,选择的参数置一,没选择的置零。在硬件编程中这种方法很方便,因为它与实际的内存结构很贴切。但是在软件设计中就不太实际,因为每次提取用户选择的参数都要遍历一遍各位,每一位的判断还要编写相对应这个变量的函数。这样做使得程序的冗余很大。明明是一样的程序,只是变量名不一样,但又没办法用函数代替。因为即使写成函数,要找到对应的变量名还是要遍历。计算机无法识别变量的含义,但是可以识别数字。
这也是我推荐的设计方法:在设计之初,对每一个参数进行编号,也就是参数ID(整型数字)。然后在数据库类中编写统一接口方法,将这个ID和变量显示文本以及变量名对应起来,选择了什么参数就动态存储对应ID号,需要调用对应参数就把ID发送给数据库的统一接口,返回数据指针,或者变量文本名。这样在算法类中程序规模会大大降低。
在程序中数字的使用是最方便的,但是一开始参数编号的时候应该注意一下。不是数据库中的每一个属性值都要编入。例如表项ID还要你用一个ID来表示这个表项,就显得莫名其妙。而且在程序中我们也不会用这个索引号来调用对应的名称和数据地址。所以那些参数是可以选入,那些不必编入是个问题。目前来看用来定义实际模型的参数是一定要编入的。推而广之,需要的编入的参数一定是以文本名来和用户交互的参数。目前经验很少,先建议这么做,以后遇到新的问题再来补充吧。