Tribon Vitesse开发教程(三)

来源:互联网 发布:网线推广优化 编辑:程序博客网 时间:2024/04/29 03:58

使用DataExtraction类进行数据抽取有一个问题,数据抽取API中的get_commandstring()不能使用,这是因为get_commandstring() 和get_string()返回的都是字符串数据类型,而ExtractData方法只能根据返回的数据类型(type =3)选择其中一个API进行数据抽取:

self.DataResult.append(kcs_dex.get_string())

好在get_commandstring()并不常用,而且还有解决这个问题的办法(这个我们后面遇到了再说)。所以其实并没有什么影响。

再就是性能问题,使用DataExtraction类会损失掉一些性能。比如说使用数据抽取API进行数据抽取,数据类型是清楚的,所以在循环中只需要判断是不是这个数据类型就可以了,而使用DataExtraction类则每次循环都要遍历所有数据类型以确定使用哪个API来进行抽取。但是就现在计算机的运算能力来看,这一点性能损失是微乎其微的。尽管我没有做具体的实验来验证究竟性能相差多大,但是从我经验来看,至少使用DataExtraction类是可以被接受的。而它的优点,又怎能让人割舍呢?

使用DataExtraction类让代码更短,提高了开发效率,便于代码维护,避免写出大函数。我看过很多数据抽取的程序都有大段的代码写入到一个函数中,这里面有程序设计没有结构化的问题,但是直接使用API进行数据抽取多出的代码也增加了代码行数。尤其在建模的程序中需要调用数据抽取部分的代码,如果直接使用API,程序的复杂度都会增加很多,可读性很差。使用DataExtraction类,数据抽取的细节问题被隐藏了,开发人员只需要拼接字符串就可以从List中获得所需的数据。方便是一方面,另外开发人员更能专注需要解决的问题,而不是抽取数据的方法。

我们看到DataExtraction类的优点,大概就是面向对象程序设计的优点,在现代软件开发中,使用面向对象程序设计方法几乎是一个不争的事实。在TribonVitesse开发中,对VitesseAPI进行类扩展就能获得面向对象设计带来的好处。DataExtraction类就是一个例子,在Tribon安装目录Vitesse\Lib下,还有很多Tribon提供的类,这些类就是扩展了VitesseAPI,并且是开放源代码的,是我们可以学习和利用的资源。我在后面的介绍中,始终使用类扩展的方式进行TribonVitesse开发。

面向对象

面向对象有三个特性,封装、继承和多态。有人形容结构化编程像蛋炒饭,而面向对象编程像盖浇饭。将米和菜分开更容易更换和重用。面向对象设计需要抽象出类,例如现实世界中的汽车就很容易抽象出汽车类,这个类可以有起、停、加速这些方法,也可以有颜色,制造厂商这些属性。根据不同的功能,还能划分出轿车、卡车这些子类。

如何在Tribon中抽象出类来呢,我们先来看一下Tribon的对象。Tribon的对象有很多种,我们拿其中一种——Structure来举例。一个Structure在Tribon中可以是一个直梯,斜梯,格栅的模型,组成这个模型的部件叫做StructurePart,例如:踏步,垫板。每个Part又被赋予了不同的材料,例如:平铁,圆钢等。这些材料汇总到部件库中,称为Components。每个Structure被放入一个Module,Module可以被看成一个分段,按Module可以汇总统计Structure。了解Tribon对象之间的关系后就很容易抽象出类来:

SdrStrucModule Module数据抽取类

SdrStruc         Structure数据抽取类

SdrComp         Components数据抽取类

这些类的源代码可以在“管支架材料表”程序中获得:

下篇将对这些代码进行分析。

0 0
原创粉丝点击