一种对象属性的描述方法

文档序号:6613599阅读:225来源:国知局
专利名称:一种对象属性的描述方法
技术领域
本发明属于计算机应用领域,具体涉及一种对象属性的描述方法。
技术背景在计算机软件设计中,为了解决应用领域的实际问题,通常需要利用 计算机语言中定义的整型、浮点型、字符等基本数据类型、以及结构体、 数组等自定义数据类型来描述现实世界中的对象属性。然而由于实际业务 中的对象属性往往千差万别,同 一程序员在定义描述不同对象时通常要采 用不同的数据表示方法,而不同程序员在描述同 一对象时的数据表示方法 也不尽相同。这种在对象属性值的数据表示方法上的不统一,增加了定义 数据操作,以及模块接口的复杂性。目前,在面向对象的程序设计中,通 常是采用重载或者模板的方法来解决。但重载的方法只是简化了函数调用 时的复杂性,并没有解决函数定义(即重载函数)的复杂性。同时,在实际业务中, 一个对象的属性往往具备多种表达方法。比如物体颜色,在显示器上,我们通常用RGB三个分量来描述颜色,而在印刷 领域我们通常采用CMYK四种分量进行描述。在传统方法中,要解决该问题 只能采取同时定义两个属性值的方法;而这显然和实际世界是不一样的。 因为在我们眼里,物体的颜色是一个确定的属性,采用CMYK和RGB只是表 达方式上的不一样。本专利技术支持对象同时采用多种数据类型进行表达, 很好的解决了该问题。另一方面,传统的数据类型只能用于对对象属性进行量化描述,而缺 少对数据的定性描述。比如对于一个值域区间在(0,1)的变量,如果给这个 变量赋值为2,即超出它的值域区间,这个值实际是个错误的值,在程序 的有效性检验中会发现这个问题。但程序无法仅仅从这个变量的数值来判 断,因此在每次使用该变量进行运算前,程序都需要调用有效性校验这个 模块,这带来了大量重复的计算,其原因即在于,单一的数据值无法记录 该^t值在实际应用中的状态。 发明内容针对现有技术中存在的缺陷,本发明的目的是提供一种对象属性的描 述方法,该方法使得在程序设计时,可以采用统一的方法进行对象属性的 数据表达,并可采用统一的接口进行对象属性的存取操作,降低了程序设 计时的复杂度,提高了程序的可扩展性,采用该方法定义的数据变量可以 更好的满足实际的应用需要。为达到以上目的,本发明采用的技术方案是一种对象属性的描述方法,通过数据类型、定量数值、定性描述来描 述对象属性,其中,所述的定量数值为所描述对象的实际数值;所述的数 据类型用于表示定量数值的类型;所述的定性描述给出了定量数值的状态。进一步,所述的数据类型包括整型、无符号型、浮点型、字符型、布 尔型、指针型;所述的数据类型是排他性的,即一个对象属性只能定义一 种数据类型;所述的数据类型采用的编码方式是二进制的编码方式或十进 制的编码方式。进一步,通过一个32位的整型值来表示所述的数据类型。 进一步,所述的数据类型能够根据实际使用的编程语言进行扩展。进一步,所述的定性描述能够根据实际的业务需要来进行状态的设置。 进一步,所述的定量数值的状态包括空属性、无效属性、越界属性、 未决属性和有效属性;其中,空属性是对象的一种特殊属性状态,在该状 态下,定量数值被忽略,用于表示人机交互中未有输入的数据;未决属性 用于多个对象实例的属性发生冲突时的描述;无效属性是泛指 一切属性数 值不合法的属性;越界属性是无效属性的一种,它具体指属性数值超出有 效区间的属性;有效属性是和无效属性对立的属性,即属性数值合法的属 性。
进一步,所述的定性描述是通过编码的方式来进行定义的,从而实现 对定量数值的状态的描述。进一步,所述的定性描述是通过二进制编码的方式来进行定义的,具体方法如下0xQ0表示空属性,0x20表示无效属性,0x40表示未决属性, OxlO表示有效属性,0x21表示越界属性。进一步,对象属性的数据类型、定量数值、定性描述是通过定义一个 数据结构来实现的,所述的数据结构包含了数据类型、定量数值、定性描 述三部分数据。进一步,对象属性的数据类型、定量数值、定性描述是通过定义三个 变量来实现的。本发明的效果在于本发明给出了一种对象属性值的通用数据结构定 义和实现方法,可更好的描述现实世界中任意对象的属性,并简化对象间 的操作接口。另外,本发明创造性的将对象的定性描述纳入对象属性的数 据表示中,并创造性的提出了对对象属性的多种数据类型表达,使对象的 属性描述更接近实际世界。


图l是本发明所述方法具体应用时的流程图; 图2是数据层和显示层的映射关系示意图; 图3是同一属性的多种数据类型表示示意图; 图4是未决属性应用示意图。
具体实施方式
下面结合具体实施方式
和附图对本发明作进一步的描述。 一种统一的对象属性描述方法,将对象属性的数据分为三部分数据 类型、定量数值、定性描述。其中,定量数值为所描述对象的实际数值。
所述的数据类型用于表示定量数值的类型,包括计算机编程语言中的整型、无符号型、浮点型、字符型、布尔型、指针型;也可根据实际使用 的编程语言进行扩展,比如增加,结构类型等等。在本实施例中,优选考 虑这六种基本类型。其中指针型数据类型体现了该方法的可扩展性,对于 结构型或者自定义数据类型,程序员均可通过指针的方式进行扩展,即此 处只定义一个指向存储数据的地址指针,实际的数据存储由程序员在外部 自行定义。所述的定性数值给出了定量数值的状态描述,并且还能够根据实际的 业务需要来进行状态的设置。在本实施例中,所述的对定量数值的状态描述包括空属性、无效属性、 越界属性、未决属性和有效属性。其中,空属性是对象的一种特殊属性状 态,在该状态下,定量数值被忽略,用于表示人机交互中未有输入的数据。 未决属性用于多个对象实例的属性发生冲突时的描述;比如同一型号的两 辆汽车,如果其颜色属性是一致的,我们可以用一个确定的颜色值对两辆 汽车同时进行描述,但对于一辆红色、 一辆黄色汽车,我们只能用未决这 样一个不确定的属性对其颜色进行描述。无效属性是泛指一切属性数值不 合法的属性,以分数为例,分母为Q是不允许的,所以如果出现属性的数 值分母为0,则该属性属于无效属性。越界属性是无效属性的一种,它具 体指属性数值超出有效区间的属性,比如应用规定数值的区间为
, 则2为越界属性。有效属性是和无效属性对立的属性,即属性数值合法的 属性。如图l所示,本发明所述的方法在具体应用过程中,包括以下几个步骤步骤一,采用一种编码方式来分别定义六种数据类型。在这一步骤中, 由于这六种数据类型是排他性的,即一个对象属性只能定义一种数据类型。 所以,采用的编码方式只要能对这六种类型进行区分即可,可采用二进制 的编码方式,比如定义一个6位的二进制,每位代表一种类型,哪一位为 1,表示该数值为那种对应的数据类型。也可以按顺序采用十进制依次编码, 比如0表示整型、l表示无符号型、2表示浮点型、3表示字符型、4表
示布尔型、5表示指针型。本实施例优选前一种编码方式。如下表所示,在本实施例中我们通过一个32位的整型值来表示数据类 型。其中,第O位用来表示该属性是否用整型数据表达,第l位表示该属 性是否用无符号型数据表达,第2位用来表示该属性是否用浮点型数据表 达,第3位用来表示该属性是否用字符型数据表达,第4位用来表示该属 性是否用布尔型数据表达,第5位用来表示该属性是否用指针型数据表达, 其余6……31位预留,可根据应用扩展。指针型布尔型字符型浮点型无符号型整型31......6543210如图3所示,中央图元的颜色可同时用CMYK和RGB表示,本实施例给 出的数据表示方法如31所示。在传统的程序设计中,我们习惯采取数据层和数据表现层分离的方式 来改善程序的扩展性,同时降低模块间的耦合度;数据层和表现层通过参 数传递的方式建立映射。如图2所示,绘制函数生成了一个黄色的矩形块 21,矩形的颜色被做为一种属性值存储在变量中,系统将该变量中的数据 传递给界面22中对应的控件完成对象数据的显示操作。显然,当界面控件 为CMYK时所需的参数和界面控件为RGB时所需的参数是不一致的。这就意 味着,系统必须针对CMYK和RGB界面各写一套参数的传递接口,如果新增 一种颜色的表达方式比如灰度,系统就必须再扩展一个支持灰度的参数传 递才妄口 ,如下所示。void SetColorProperty (int R, int G,int B) ^void SetColorProperty (int C,int M,int Y, int K);void SetColorProperty (int Gray);显然这增加了接口定义的复杂度,程序的扩展性也不好。另一种解决 方案是,系统始终提供一个确定的参数,由界面去完成CMYK到RGB或者灰 度的转换工作,这种处理原则将使得界面的处理中将关联一些业务逻辑, 不符合数据层和表现层分离的初衷。
步骤二,采用一种编码方式来对定性描述中指定的五种状态进行描述。 由于数据的数值状态可以同时为多个状态,比如一个无效值同时也是越界 值,所以编码要求能表示这5种状态的组合情况。编码方式可以遍历所有的组合情况,顺序编码。也可以采用二进制编码方式,定义一个8位的二进制,每一位对应一种状态,通过对这个二进制串不同数位的判断即可确 定数值的状态。对于定性数值,本实施例中通过编码的方式来进行定义,其中0x00 表示空属性,Gx2G表示无效属性,Qx40表示未决属性,OxlO表示有效属 性,0x21表示越界属性。其余定性描述均可扩展编码。步骤三,定义一个数据结构,该数据结构包含了三部分数据,分别定 义了一个对象属性的数据类型、定量描述、定性描述。本发明可以用一个 结构型数据来定义,也可以用三个变量来定义。本实施例优选用结构型数 据来定义。其中定量描述部分的数值采用步骤一中的编码方式,定性描述 部分的数值采用步骤二中的编码方式。在本实施例中,定义了一个如下所示的结构型数据,以下使用c语言 描述COTROL一PROPERTY。 struct CONTROL PROPERTYDWORD m—dwMask; 〃数据类型定义DWORD m一dwState; 〃定性数值 int m—nValue; 〃 Integer valueUINT m_uValue; 〃 Unsigned valueVREAL m一fValue; 〃 Double valueVWSTR m一wstrValue; 〃 String valuebool m—bValue; 〃 Boolean valueCOLOR—PARAMETER m一clrValue; 〃 Color value void* m_pData; 〃 Buffer value
void SetColorProperty(COTROL_PROPERTY);最后,在实际编程使用中,可以做如下声明、初始化CONTROL—PROPERTY value; value.m—dwState=0x00; value .m—dwMask= 1 〃以上我们即定义了 一个整型的对象属性,该对象的属性值当前处于未 决状态,即等待用户初始化。步骤四,用步骤三中定义的数据结构来声明实际应用中的对象属性, 并进行相应的初始化操作即可。如图3所示,首先初始化一个C0TR0L—PROPERTY型的颜色变量,数据 存储结构如31所示。我们只需定义一个如前所示的接口 ,然后界面控件根 据自己的需要从结构体中取出相应数值显示出来即可。图4给出了一个未决属性的应用示意。在该图中,同时有两个不同颜 色的图元41和图元42净皮选中,此时显示对象属性值的颜色面板43显示为 空。在传统的程序设计中,需要对这种情况写一个单独的处理接口,而利 用本发明给出的方法中,只需将属性置为未决属性即可,图4所示的接口 可保持不变。基于此,本发明给出了一种统一的对象属性表示方法。该方法具备良 好的可扩展性,可同时采用多种数据结构描述任意对象的任意属性,同时 可以对对象属性进行定性描述。该方法使得数据的控制接口可以采用单一 的参数定义,方便了上层应用程序的业务扩展,通过封装技术,降低了接 口定义和接口调用的复杂度。
权利要求
1.一种对象属性的描述方法,通过数据类型、定量数值、定性描述来描述对象属性,其中,所述的定量数值为所描述对象的实际数值;所述的数据类型用于表示定量数值的类型;所述的定性描述给出了定量数值的状态。
2. 如权利要求1所述的一种对象属性的描述方法,其特征是所述的数 据类型包括整型、无符号型、浮点型、字符型、布尔型、指针型;所述的数 据类型是排他性的,即一个对象属性只能定义一种数据类型。
3. 如权利要求2所述的一种对象属性的描述方法,其特征是所述的数 据类型还能够根据实际使用的编程语言进行扩展。
4. 如权利要求2或3所述的一种对象属性的描述方法,其特征是所述 的数据类型采用的编码方式是二进制的编码方式或十进制的编码方式。
5. 如权利要求1、 2或3所述的一种对象属性的描述方法,其特征是 所述的定性描述能够根据实际的业务需要来进行状态的设置。
6. 如权利要求1、 2或3所述的一种对象属性的描述方法,其特征是 所述的定量数值的状态包括空属性、无效属性、越界属性、未决属性和有 效属性;其中,空属性是对象的一种特殊属性状态,在该状态下,定量数值 被忽略,用于表示人机交互中未有输入的数据;未决属性用于多个对象实例 的属性发生沖突时的描述;无效属性是泛指一切属性数值不合法的属性;越 界属性是无效属性的一种,它具体指属性数值超出有效区间的属性;有效属 性是和无效属性对立的属性,即属性数值合法的属性。
7. 如权利要求6所述的一种对象属性的描述方法,其特征是所述的定 性描述是通过编码的方式来进行定义的,从而实现对定量数值的状态的描述。
8. 如权利要求7所述的一种对象属性的描述方法,其特征是所述的定 性描述是通过二进制编码的方式来进行定义的,具体方法如下0x00表示空 属性,0x2Q表示无效属性,Qx40表示未决属性,OxlO表示有效属性,Ox" 表示越界属性。
9. 如权利要求1、 2或3所述的一种对象属性的描述方法,其特征是 对象属性的数据类型、定量数值、定性描述是通过定义一个数据结构来实现 的,所述的数据结构包含了数据类型、定量数值、定性描述三部分数据。
10.如权利要求1、 2或3所述的一种对象属性的描述方法,其特征是:对象属性的数据类型、定量数值、定性描述是通过定义三个变量来实现的。
全文摘要
本发明涉及一种对象属性的描述方法,属于计算机应用领域。本发明通过数据类型、定量数值、定性描述来描述对象属性,其中,所述的定量数值为所描述对象的实际数值;所述的数据类型用于表示定量数值的类型;所述的定性描述给出了定量数值的状态。本发明给出了一种对象属性的通用数据结构定义和实现方法,可更好的描述现实世界中任意对象的属性,并简化对象间的操作接口。
文档编号G06F17/30GK101126984SQ20071017552
公开日2008年2月20日 申请日期2007年9月30日 优先权日2007年9月30日
发明者雯 熊 申请人:北大方正集团有限公司;北京北大方正电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1