当前位置: 首页 > 专利查询>微软公司专利>正文

使特性与对象相关联的系统和方法技术方案

技术编号:2874100 阅读:241 留言:0更新日期:2012-04-11 18:40
一种包括对象的计算机可读媒体,所述对象具有第一组特性中的特性,其特征在于,所述计算机可读媒体进一步包括: 数据结构,所述数据结构包括第二组特性中的每一个特性的定义,并且包括与第二组特性中的一个特性相关联的至少一种静态方法,所述至少一种静态方法具有唯一地识别一个特性的第一参数,可操作所述静态方法,使一个特性与对象相关联,而无需规定对于对象中的一个特性的明确的参考。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般涉及软件应用程序,尤其,涉及管理在软件应用程序中的对象特性的机制。(2)
技术介绍
当今大多数编程模型都支持类别的概念。一般在具有分支的分层树中构成这些类别,所述分支表示在类别层次中的不同类别。当两个分支处于不同级别时,较低的分支表示子类。子类继承从与上分支(例如,父类)相关联的类别来的信息。当两个分支处于相同级别时,把类别称为姐妹类。为了下述讨论的目的,可以分别使用术语下级和上级来指出子类和父类。在层次中最上面的分支表示在分层类别树中的基本类。一般,在每个类别中的信息包括特性、方法和事件。特性描述与类别相关联的特征。例如,按钮类可以具有诸如宽度、背景颜色、字体类型、可见性和按下之类的特性。当建立这些类别中的一个实例时,就创建该类别的对象。在对象中的每个特性都有相关联的值,在运行时间操作期间,可以查询和设置该值。如果语法有较强的代表性,则可以期望这个查询和设置的值符合特定的数据类型。希望语法具有较强的代表性,因为可以在运行时间操作之前检测软件应用程序中的差错。一旦类别层次就位,把新功能添加到类别层次的对象中就会出现问题。在一种编程模型中,把新功能强加到基本类中。当这样做时,基本类变成极大(例如,一百种方法、五十个特性以及二十件事件),这导致对象层次几乎不可管理。这种编程模型的一个不希望有的结局是在开发者把所要求的特性实施在他们创建的对象中之前,充分了解在基本类中的特性、方法和事件的数目对于开发者来说变成比什么都重要。这种编程模型的再另一个不希望有的结局是由于这些特性值事实上是局部存储的,存储器的需求变成极大。因为局部地存储这些值,用这个编程模型创建的应用程序就不能较好地换算。这些编程模型还导致对于第三方开发者的其它问题。希望添加新功能的第三方开发者必须在层次的底部添加一个子类,层次中的其它类别不可得到新功能。因此,第三方开发者可能需要把新功能添加到数个子类。可以想象,这导致代码复制,它影响了对象层次的可保持性。为了上述原因,极不希望有这种编程模型。直到有了本专利技术,熟悉本
的人员才懂得一种编程模型,该编程模型允许把新功能提供给现有类别层次中的类别而没有上述缺点。(3)
技术实现思路
本专利技术提供一种机制,该机制允许把新功能提供给类别而无需使新功能变成类别的永久部分。此外,本专利技术允许把新功能表示为不是构造到类别中的一个特性。一般,本专利技术提供一种机制,使一个类别中的特性与另一个类别相关联。这种关联是易于修改的,以致可以使其它特性组与所述类别相关联。在一个实施例中,计算机可读出媒体包括具有第一特性组中的特性的一个对象,所述计算机可读出媒体进一步包括一种数据结构。数据结构包括第二特性组中的每一个的定义,并包括至少一个静态方法。静态方法与第二特性组当中的一个特性相关联,并包括第一参数。第一参数唯一地识别一个特性。可操作静态方法使一个特性与对象相关联而无需指定对象中的一个特性的明确的参考。在本专利技术的一个方面,静态方法支持一种打印成黑体的语法。在本专利技术的另一个方面,静态方法包括检索对象的一个值而无需把所述值局部地存储在对象上。可以从诸如父对象或特性表(property sheet)之类的几个级别检索所述值。本专利技术的一个优点是把特性分割成一个或多个子集允许特性的每个子集变得更容易保存。本专利技术的另外的优点是更能扩展对象的层次,并允许开发者把功能添加到影响基本类和所有下级的对象层次。本专利技术的另外的优点是管理对象中特性的存储变得更有效和方便。本专利技术再另外的优点是编程模型在有计划的或标记的环境中操作。此外,编程模型在打印成黑体的编程语言(诸如C++和C#)中操作。此外,编程模型支持特性表、变更通知以及值继承。本专利技术的另外的优点是可以同时存在独立的程序库,因为由于所附类别的名称有效地变成特性名称的一部分而名称冲突的可能性较小。因此,如果两个不同的开发者每人都创建名称为“颜色”的一个附加特性,则两个附加特性不会冲突。(4)附图说明图1示出可以在本专利技术的一个示例实施例中使用的示例计算装置;图2是可以与图1的计算装置一起创建的示例显示器;图3是根据本专利技术的编程模型的图形表示,所述编程模型允许特性从一种类别附加到另一种类别;图4示出用于执行图3中示出的编程模型的几种示例语法;图5是根据本专利技术的逻辑流程图,示出设置一个值的一个过程;图6是根据本专利技术的逻辑流程图,示出检索一个值的一个过程。(5)具体实施方式简单地说,本专利技术提供一种编程模型,所述编程模型允许把新功能提供给一个类别而无需使新功能变成类别的一部分。此外,本专利技术允许把新功能表示为不构造到类别中的一个特性。一般,本专利技术提供一种机制,用于使一种类别中的特性与另一种类别相关联。在阅读下面详细说明之后会明白,本专利技术的编程模型把动态特性提供给对象而无需把特性构造到对象中。参考图1,实施本专利技术的一个示例系统包括诸如计算装置100之类的计算装置。在一种极基本的配置中,计算装置100一般包括至少一个处理单元102以及系统存储器104。根据计算装置的确切的配置以及类型,系统存储器104可以是易失性的(诸如RAM)、非易失性的(诸如ROM、快闪存储器等)、或它们两者的某些组合。系统存储器104一般包括操作系统105、一个或多个程序模块106,并可以包括程序数据107。程序模块106的例子包括来自Redmond的微软公司的Visual Studio IntelliSense、WA以及利用对象程序库的其它软件编程环境。此外,程序模块106包括使用软件-编程环境创建的软件应用程序。当在处理单元102上执行这些软件应用程序时,特性引擎根据本专利技术的编程模型处理软件应用程序。特性引擎可能是操作系统105的一部分,或可能是另一个程序模块106。通过在图1中虚线108中的这些元件示出计算装置100的这种基本配置。计算装置100可以具有另外的特征或功能。例如,计算装置100也可能包括另外的数据存储装置(可拆卸的和不可拆卸的),例如,诸如磁盘、光盘或磁带。在图1中由可拆卸的存储器109和不可拆卸的存储器110来示出这种另外的存储器。计算机存储媒体可以包括以任何用于存储信息(诸如计算机可读出指令、数据结构、程序模块、或其它数据)的方法或技术实施的易失性和非易失性、可拆卸和不可拆卸媒体。系统存储器104、可拆卸的存储器109和不可拆卸的存储器110是所有计算机存储媒体的例子。计算机存储媒体包括,但是不限于,RAM、ROM、EEPROM、快闪存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光存储器、磁盒、磁带、磁盘存储器或其它磁存储装置、或可以用来存储所需要的信息和可以通过计算装置100访问的任何其它媒体。任何如此的计算机存储媒体可以是计算装置100的一部分。计算装置100还具有诸如键盘、鼠标、笔、话音输入装置、触摸输入装置等输入装置112。还可以包括诸如显示器、扬声器、打印机之类的输出装置114。这些装置是本
中众知的,这里不需要用大篇幅来描述。计算装置100还可以包括允许所述装置,诸如通过网络,与其它计算装置118进行通信的通信连接116。通信连接116是通信媒体的一个例子。通信媒体一般可以通过计算机可读出指令、数据结构、程序模块、或在调制数据信号中的其它数据(诸如载波波形与本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:J·L·波格丹M·J·菲诺齐奥N·M·克雷默
申请(专利权)人:微软公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1