• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 14
    • 下载费用:30 金币  

    重庆时时彩怎样刷返点: 调用构件对象功能的智能指针的封装方法.pdf

    关 键 词:
    调用 构件 对象 功能 智能 指针 封装 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN02159487.2

    申请日:

    2002.12.31

    公开号:

    CN1512340A

    公开日:

    2004.07.14

    当前法律状态:

    终止

    有效性:

    无权

    法律详情: 未缴年费专利权终止IPC(主分类):G06F 9/52申请日:20021231授权公告日:20060712终止日期:20151231|||授权|||专利申请权、专利权的转移(专利申请权的转移)变更项目:申请人变更前权利人:北京科泰世纪科技有限公司变更后权利人:上??铺┦兰涂萍加邢薰颈涓钅?地址变更前:100084北京市海淀区清华科技园创新大厦B座6层618号变更后:201203上海市浦东新区郭守敬路498号17号楼2层登记生效日:2005.5.27|||实质审查的生效|||公开
    IPC分类号: G06F9/52 主分类号: G06F9/52
    申请人: 北京科泰世纪科技有限公司;
    发明人: 陈榕; 叶忠强; 梁宇洲
    地址: 100084北京市海淀区清华科技园创新大厦B座6层618号
    优先权:
    专利代理机构: 北京同立钧成知识产权代理有限公司 代理人: 余丽;刘芳
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN02159487.2

    授权公告号:

    |||1264090|||||||||

    法律状态公告日:

    2017.02.22|||2006.07.12|||2005.06.29|||2004.09.22|||2004.07.14

    法律状态类型:

    专利权的终止|||授权|||专利申请权、专利权的转移(专利申请权的转移)|||实质审查的生效|||公开

    摘要

    一种调用构件对象功能的智能指针的封装方法,当接口智能指针做为构件对象方法的调用方传递给被调用方的参数时,不进行引用计数的增加和减少;当接口智能指针被构造、析构或赋值时,增加、减少引用计数;类智能指针包括与构件对象实现的接口相对应的成员变量,该成员变量用于调用构件对象实现的接口方法;类别智能指针包括与类别中所有接口相对应的成员变量,该成员变量用于调用继承了该类别的构件对象实现的该类别所有接口的接口方法。本发明实现了智能管理引用计数和构件创建;通过类智能指针调用构件对象实现的所有接口功能,降低了编程的复杂度;类别智能指针类中的成员变量与接口相对应,实现了创建对象时的“多态”。

    权利要求书

    1: 一种构件端接口智能指针的实现方法,其特征在于: 用一个类实现第一种类型接口智能指针,该第一种类型接口智能指针只 做为构件对象的调用方向该构件对象的被调用方接口功能传递参数时,不进 行引用计数的增加或者减少; 用一个类实现第二种类型接口智能指针,该第二种类型接口智能指针用 于构造、析构和赋值被调用方的构件对象接口功能时,还增加或者减少引用 计数; 该第一、二种类型接口智能指针均用于创建构件对象。
    2: 根据权利要求1所述的构件端接口智能指针的实现方法,其特征在 于:当构造一接口智能指针对象时,且当一个非空的接口指针从一个内存位 置拷贝到另一个内存位置时,增加一个引用计数。
    3: 根据权利要求1所述的构件端接口智能指针的实现方法,其特征在 于:当析构一接口智能指针对象,或当两个智能指针对象之间进行赋值时, 对于已经包含非空接口指针的内存位置,在重写该内存位置之前,先减少一 个引用计数。
    4: 一种直接访问构件对象所有功能的智能指针的封装方法,其特征在 于:类智能指针设有与构件对象实现的接口相对应的成员变量,该成员变量 用于调用构件对象实现的接口功能。
    5: 根据权要求4所述的直接访问构件对象所有功能的智能指针的封装 方法,其特征在于:所述的成员变量至少为一个,且该成员变量的数量与构 件对象实现的接口个数相等。
    6: 根据权要求4或5所述的直接访问构件对象所有功能的智能指针的 封装方法,其特征在于:所述的类智能指针实现方式具体为:类智能指针通 过继承接口智能指针实现。
    7: 根据权要求6所述的直接访问构件对象所有功能的智能指针的封装 方法,其特征在于:当接口智能指针只做为调用方向被调用方接口功能传递 参数时,不进行引用计数的增加或者减少;当接口智能指针用于构造、析构 和赋值被调用方的接口功能时,还增加或者减少引用计数。
    8: 根据权要求7所述的直接访问构件对象所有功能的智能指针的封装 方法,其特征在于:当构造一接口智能指针对象时,且当一个非空的接口指 针从一个内存位置拷贝到另一个内存位置时,增加一个引用计数。
    9: 根据权要求7所述的直接访问构件对象所有功能的智能指针的封装 方法,其特征在于:当析构一接口智能指针对象,或当两个智能指针对象之 间进行赋值时,对于已经包含非空接口指针的内存位置,在重写该内存位置 之前,先减少一个引用计数。
    10: 根据权要求4或5所述的直接访问构件对象所有功能的智能指针的 封装方法,其特征在于:所述的类智能指针实现方式具体为:类智能指针直 接在该类中设置与构件对象实现接口一一对应的成员变量,类智能指针直接 在该类中定义,并实现该构件对象实现的所有接口功能。
    11: 一种基于类别的智能指针的封装方法,其特征在于:类别智能指针 包括与类别中所有接口相对应的成员变量,该成员变量用于调用继承了该类 别的构件对象实现的该类别所有的接口功能。
    12: 根据权利要求11所述的基于类别的智能指针的封装方法,其特征 在于:所述的类别智能指针具有一个或以上的成员变量,该成员变量的数量 与构件类中的构件对象实现的接口个数相等;该类别智能指针用于创建构件 对象。
    13: 根据权利要求11或12所述的基于类别的智能指针的封装方法,其 特征在于:所述的类别智能指针实现方式具体为:类别智能指针通过继承接 口智能指针实现。
    14: 根据权利要求13所述的基于类别的智能指针的封装方法,其特征 在于:当接口智能指针只做为调用方向被调用方接口功能传递参数时,不进 行引用计数的增加或者减少;当接口智能指针用于构造、析构和赋值被调用 方的接口功能时,还增加或者减少引用计数。
    15: 根据权利要求14所述的基于类别的智能指针的封装方法,其特征 在于:当构造一接口智能指针对象时,且当一个非空的接口指针从一个内存 位置拷贝到另一个内存位置时,增加一个引用计数。
    16: 根据权利要求14所述的基于类别的智能指针的封装方法,其特征 在于:当析构一接口智能指针对象,或当两个智能指针对象之间进行赋值时, 对于已经包含非空接口指针的内存位置,在重写该内存位置之前,先减少一 个引用计数。
    17: 根据权利要求11或12所述的基于类别的智能指针的封装方法,其 特征在于:所述的类别智能指针实现方式具体为:类别智能指针包括与类别 中所有接口相对应的成员变量,该成员变量用于调用继承了该类别的构件对 象实现的该类别所有的接口功能。

    说明书


    调用构件对象功能的智能指针的封装方法

        【技术领域】

        本发明涉及一种调用构件对象功能的智能指针的封装方法,特别是指一种用于在创建构件对象时,用于传递调用方参数或调用构件对象接口功能的智能指针的封装方法,属于计算机技术领域。

        背景技术

        80年代以来,软件编程技术有了很大地发展,其发展可以大致分为以下几个阶段:

        面向对象编程,即通过对软件??榈姆庾?,使其相对独立,从而使复杂的问题简单化。面向对象编程强调的是对象的封装,但???对象)之间的关系在编译的时候已被固定,??橹涞墓叵凳蔷蔡?,这种关系在程序运行时不能改变;也就是说:在运行时不能换用??橹懈〉墓δ艿ピ?。

        面向构件编程,即为了使不同软件开发商提供的构件???软件对象)可以相互操作使用,构件之间的连接和调用通过标准的协议来实现。构件化编程模型强调协议标准,需要提供各厂商都能遵守的协议体系。就像公制螺丝的标准一样,所有符合标准的螺丝和螺母都可以相互装配。构件化编程模型建立在面向对象技术的基础之上,是完全面向对象的,提供了动态构造部件???在运行中可以构造部件)的机制。构件在运行时可以动态装入,是可以更换的。但是,现有的面向构件编程技术要求用户自行定义构件的非自描述接口,使得用户程序的开发依然繁复。

        智能指针用于封装指针功能。现有的一些智能指针类用于封装组件对象模型(The?Component?Object?Model,简称COM)接口指针,这些这些智能指针自动进行查询接口,和处理增、减引用计数构造或析构构件对象,并可以调用构件对象接口的功能。

        例如:以C++程序设计语言为例:在COM编程中,如果一个对象CObject实现了接口IA、接口IB和接口IC;接口IA中包括功能FA,接口IB中包括功能FB,接口IC中包括有功能FC。这样,如果用户要调用功能FA、FB、FC时,需要写出下面的C++代码才能调用到功能FA、FB和FC,(假定用户已经获得接口IA的接口指针pIA):

        ????......

        ????pIA→FA(...);

        ????IB*pIB;

        ????IC*pIC;

        ????pIA→QueryInterface(IID_IB,&pIB);

        ????pIA→QueryInterface(IID_IC,&pIC);

        ????pIB→FB(...);

        ????pIC→FC(...);

        ????pIB→Release();

        ????pIC→Release();

        ????......

        为了简单,上述的C++代码没有考虑功能调用失败的情况。即使如此,上述的调用需要用户编写九行程序,这给编程带来了一定的复杂度。

        【发明内容】

        本发明的主要目的在于提供一种构件端接口智能指针的实现方法,用于构件的调用方通过接口智能指针访问该接口所定义的功能,并实现智能管理引用计数和创建构件对象。

        本发明的另一目的在于提供一种直接访问构件接口的智能指针的封装方法,通过类智能指针调用构件对象实现的所有接口功能,降低编程的复杂度。

        本发明的又一目的在于提供一种基于类别的智能指针的封装方法,类别智能指针类中的成员变量,与具有相同特性的构件所组成的构件类中的所有接口相对应,用于调用构件类对象实现的所有接口功能,降低编程的复杂度。

        本发明的目的是这样实现的:

        一种构件端接口智能指针的实现方法:

        用一个类实现第一种类型接口智能指针,该第一种类型接口智能指针只做为构件对象的调用方向该构件对象的被调用方接口功能传递参数时,不进行引用计数的增加或者减少;

        用一个类实现第二种类型接口智能指针,该第二种类型接口智能指针用于构造、析构和赋值被调用方的构件对象接口功能时,还增加或者减少引用计数;

        该第一、二种类型接口智能指针均用于创建构件对象。

        当构造一接口智能指针对象时,且当一个非空的接口指针从一个内存位置拷贝到另一个内存位置时,增加一个引用计数。

        当析构一接口智能指针对象,或当两个智能指针对象之间进行赋值时,对于已经包含非空接口指针的内存位置,在重写该内存位置之前,先减少一个引用计数。

        一种直接访问构件对象所有功能的智能指针的封装方法,类智能指针设有与构件对象实现的接口相对应的成员变量,该成员变量用于调用构件对象实现的接口功能。该成员变量至少为一个,且该成员变量的数量与构件对象实现的接口个数相等。类智能指针实现方式具体为:类智能指针通过继承接口智能指针实现。

        所述的类智能指针实现方式具体为:类智能指针直接在该类中设置与构件对象实现接口一一对应的成员变量,类智能指针直接在该类中定义,并实现该构件对象实现的所有接口功能。

        一种基于类别的智能指针的封装方法,类别智能指针包括与类别中所有接口相对应的成员变量,该成员变量用于调用继承了该类别的构件对象实现的该类别所有的接口功能。

        所述的类别智能指针具有一个或以上的成员变量,该成员变量的数量与构件类中的构件对象实现的接口个数相等;该类别智能指针用于创建构件对象。

        所述的类别智能指针实现方式具体为:类别智能指针通过继承接口智能指针实现。

        所述的类别智能指针实现方式具体为:类别智能指针包括与类别中所有接口相对应的成员变量,该成员变量用于调用继承了该类别的构件对象实现的该类别所有的接口功能。

        本发明用于构件的调用方通过接口智能指针访问该接口所定义的功能,实现了智能管理引用计数;通过类智能指针调用构件对象实现的所有接口功能,降低了编程的复杂度;类别智能指针类中的成员变量与具有相同特性构件所组成的构件类的所有接口相对应,同时方便了对构件对象根据需要进行灵活的配置。

        【附图说明】

        图1为本发明接口智能指针中成员变量与构件对象实现的接口之间的关系示意图;

        图2为本发明接口智能指针通过成员变量调用构件对象实现对应功能的示意图;

        图3为本发明不同类型接口智能指针相互之间继承关系的示意图;

        图4为本发明类智能指针继承接口智能指针的继承关系示意图;

        图5为本发明类智能指针中的各成员变量与构件对象实现的各接口之间的关系示意图。

        【具体实施方式】

        以下结合附图和具体的实施例对本发明作进一步的详细说明:

        在基于构件对象的平台中,用户可通过接口智能指针来访问该这个接口所定义的方法,因此,接口智能指针是对接口的封装。本发明对接口智能指针的实现以C++程序设计语言为例,具体如下:

        将接口智能指针定义为类,这个类中只设有一个成员变量,该成员变量就是实际的指向对象接口的接口指针。

        参见图1和图2,其中接口智能指针IARef与接口IA对应。接口智能指针类实现该接口的所有方法这些接口方法都通过成员变量调用构件对象实现的方法来实现。

        本实施例中,当一个接口智能指针对象被构造时,当一个非空的接口指针从一个内存位置拷贝到另一个内存位置时,则应调用引用增加(AddRef)功能,以便通知对象又有附加的引用发生了;

        当一个接口智能指针对象被析构或两个智能指针对象进行赋值时,则对于已经包含非空接口指针的内存位置来说,在重写该内存位置之前,必须先调用释放(Release)功能,以便通知构件对象“该引用已经被销毁”;

        当接口智能指针做为入口(“[in]”)接口参数时,则上述两种情况下的AddRef功能和Release功能的调用可以被优化掉。

        具体而言,在本实施例中实现了两种类型的智能指针,其一只能做为[in]参数使用,而另外一种则继承前一种智能指针,对于构造,析构和赋值操作则进行相应的增加和减少引用计数。

        以C++程序设计语言为例,如果接口智能指针IXXXRefArg实现为[in]接口参数,而作为接口智能指针IXXXRefArg的继承,接口智能指针IXXXRef中的构造、析构和赋值则进行相应的增加和减少引用计数。

        对于IUnknown接口(Iunknown为美国微软公司COM规范中的一种接口)的两个接口智能指针类,接口智能指针类InterfaceRefArg和接口智能指针类InterfaceRef,其中,接口智能指针类InterfaceRef继承了接口智能指针类InterfaceRefArg。其中,接口智能指针类InterfaceRefArg中定义了一个成员变量IUnknown*m_pIface。其它所有接口智能指针追根溯源都继承于该类,因此所有接口智能指针都具有该成员变量IUnknown*m_pIface。

        正如所有的接口都继承于IUnknown一样,所有的接口智能指针都继承于InterfaceRefArg。参见图3,以接口IButton为例:接口智能指针类IbuttonRef继承于接口智能指针类IbuttonRefArg,接口智能指针类IbuttonRefArg和InterfaceRef均继承于接口智能指针类InterfaceRefArg。

        通过接口智能指针可以创建出实现了该接口的构件对象,并使该智能指针的成员变量指向这个新创建出的构件对象。

        为了解决在编程中代码复杂度不能降低的问题,本发明采用类智能指针对构件类封装,假定已经有了指向上述的的CObject对象的类智能指针变量m_cObject。则调用上述三个功能FA、FB和FC的代码为:

        m_cObject.FA(...);

        m_cObject.FB(...);

        m_cObject.FC(...);

        由此可以看出:使用类智能指针,代码简单且程序易懂。

        在以C++语言为例:类智能指针表现为类,这个类具有若干个成员变量。每个成员变量用来指向构件对象的一个接口,成员变量的数目等于构件对象实现的接口个数。成员变量和构件对象实现的接口一一对应。通过类智能指针,可以调用构件对象实现的所有接口功能。如上所述,通过类智能指针m_cObject,就可以调用接口IA的接口功能FA,也可以调用接口IB的接口功能FB,还可以调用接口IC的接口功能FC。

        本发明中,类智能指针的实现可以有两种方式:

        参见图4,以C++语言为例,类智能指针的第一种实现方式为:类智能指针直接继承接口智能指针;在这种情况下,当用户调用构件对象实现的功能CObjectRef∷FA(...)时,事实上它调用的就是智能指针IARef对应的接口智能指针IARef∷FA(...)。

        参见图5,类智能指针的第二种实现方式为:构件对象的类智能指针不继承构件对象实现的所有接口对应的接口智能指针,而是直接在该类中定义若干个成员变量,每个成员变量对应一个该构件对象实现的接口,成员变量的个数等于构件对象实现的接口数目。类智能指针直接在该类中定义并实现该构件对象实现的所有接口功能。

        在这种情况下,当用户调用构件对象实现的功能CObjectRef∷FA(...)时,构件对象实现的功能CObjectRef∷FA(...)的实现将调用成员变量m_pIAface→FA(...)。

        通过类智能指针可以创建出这个类智能指针对应的构件对象,并且使这个类智能指针继承来的成员变量指向该新创建出的对象。

        为了解决在编程中代码复杂度不能降低的问题,同时方便对构件对象根据需要进行灵活的配置,本发明采用类别智能指针对构件类封装。

        就像接口智能指针是对接口的封装一样,类别智能指针是对类别的封装。本发明将具有相同特点的构件对象接口划分成一类。例如:各种型号的声卡均用于记录和播放声音,各种型号的声卡都具有相应的驱动程序,因此可以把每种型号声卡的驱动程序做成一个声卡构件类;一个构件类中包括若干个接口,在该声卡构件类中,所有的声卡驱动构件均包含有一个相同的接口集合。一个类别为一个接口的集合,用于被构件类和类别进行继承。所有继承这个类别的构件类,都实现这个类别包括的所有接口。而继承这个类别的类别,它的接口集合就变为两个接口集合的并集。

        本发明中,类别和构件类的区别是:类别是一个接口的集合,用于被继承;构件类也是一个接口的集合,构件类却不能被继承;所有继承类别的构件类都必须实现该类别包括的所有接口。

        本发明中类别智能指针的实现和类智能指针相同,即类别智能指针采用与类智能指针相同的方式实现,在此不再赘述。

        最后应说明的是:以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。

    关于本文
    本文标题:调用构件对象功能的智能指针的封装方法.pdf
    链接地址://www.4mum.com.cn/p-6198345.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 时彩玩法技巧之稳赚 时时彩提前开奖作弊 三分pk拾稳赚技巧 彩票店合作协议 时时彩计划软件哪个准 双色球技巧准确率100 时时彩全网计划 稳赚包平特1肖三期最少开1 11选五彩票计划软件下载 2017赛车pk10稳赢公式 福利票福建时时 快三大小单双微信群 nba投注技巧 山东体彩11选5任三稳赚 pk10冠军大小单双口诀 重庆时时官方开奖结果