论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
C++类的动态组件化技术

   论文 关键词:组件 接口 生命周期 ++类 ATL组件类 ++基类 ATL模板基类 继承

  论文摘要:在组件化编程的时代,如何复用 历史 累积的大量没有组件特性的++类?本文从工程的角度对这一问题进行探讨,利用现有组件技术,提出了一套将++类平滑过渡到组件的完整解决方案。

  1. 问题的提出

  自从irsft公布了(pnent bjet del,组件对象模型,简称)技术以后,inds平台上的开发模式发生了巨大的变化,以为基础的一系列组件技术将inds编程带入了组件化时代,传统的面向对象的软件开发方法已经逐渐被面向组件的方法所取代。

  标准建立在二进制可执行代码级的基础上,不论何种工具、语言开发的组件,只要符合规范,就可复用于V、VB、Delphi、B等各种开发环境中。的语言无关性将软件复用的层次从源代码级推进到了二进制级,复用更方便,也更安全。

  然而,技术带来全新的软件设计和开发模式的同时,也带来了新的问题。

  许多软件公司在开发自己的软件产品过程中,都累积了大量++类,这些代码设计精良,功能完备,以面向对象的标准来检验无可挑剔。然而,这些代码不支持,将无法在时代继续被复用。如果它们在软件组件化的趋势中被淘汰,那对软件公司和开发人员来说都是极大的损失。

  专家Dn Bx曾说过,“ is a super ++”。这给了我们一个启示,是否可以实现一种技术,能够动态的为普通++类加上一层的封装呢?这样,既可以保持这些代码自身的完整和特性,使它们能继续应用于原来的系统,也可以在需要作为组件使用的时候,把它们动态转变成组件,复用于新系统。

  一个 自然 而然的想法是,为每一个++类开发一个只暴露一个接口的组件,将原++类的每个publi方法都对应于该接口的一个方法,接口方法的实现可以简单的调用相对应的++类方法即可。这样,程序逻辑由原有的++类控制,但层的封装则由组件提供。基本思路如下图所示:

  

  本文就这一技术展开讨论,最终提供一套由普通++类平滑过渡到组件的完整解决方案。我们选用ATL(Ative Teplate Library,活动模板库,简称ATL)作为组件的开发工具,开发环境为Visual Studi 6.0。如没有特殊说明,下文中的“++类”指没有组件特性++类,“++对象”指++类的实例;“ATL组件类”指用于包装的ATL类,“ATL对象”指ATL组件类的实例。

  2. 用ATL包装++类
  按上述思路将++对象动态组件化后,所得的组件实际上由两部分组成:ATL组件对象和绑定的++对象。两者的生命周期互相牵制,但要保持一致。生命周期的管理是++类动态组件化的首要难点。

  ++类分为两种,一种是简单的++类,一种是集合型的++类。集合型的++对象管理一组++对象,负责其创建和删除,维护它们的生命周期。下面,分别就简单++类和集合型++类的组件化技术进行说明,展示解决方案的核心技术。

  2.1. 简单++类的组件化
  为使ATL组件类可以自由调用++类的方法,需要:

  l 为ATL组件类安插一个指针成员变量,指向++类

  l 提供ATL对象和++对象的绑定机制

  我们可以在ATL组件类初始化时创建一个++类,用成员变量_pPPbj记录,在析构时删除,从而实现ATL组件类和++类的天然绑定。但出于灵活性考虑,使得ATL组件对象可以绑定任意++类的对象,我们为ATL组件类添加一个绑定函数Link2PPbj(Ipleent* pbj)。

  在ATL组件类的构造函数内,创建一个++对象,用_pPPbj记录。

  如果调用了Link2PPbj,则将_pPPbj指向的对象删除,改用传入的++对象。

  在ATL组件类的的析构函数内,删除其绑定的++对象。由构造函数和Link2PPbj函数的定义可知,_pPPbj指针总是有意义的。

  简单++类组件化的思想如下图所示:

未完...点击下方链接下载完整文档

C++类的动态组件化技术

论文 关键词:组件 接口 生命周期 ++类 ATL组件类 ++基类 ATL模板基类 继承 论文摘要:在组件化编程的时代,如何复用 历史 累积的大量没有组件特性的++类?本文从工程的角度对这一问题进行探讨,利用现有组件技术,提出了一套将++类平滑过渡到组件的完整解决
  • 上一篇:浅谈计算机辅助环境艺术设计的发展
  • 下一篇:基于Web的学校管理系统的功能分析和总体设计
  • 有关计算机软件数据接口的应用研
    浅谈对程序开发中异常的理解和认
    基于人工智能的银行信贷风险决策
    研究生阶段计算机网络理论课程教
    面向对象数据库理论设想
    大芯数OPGW在浙江电网的应用
    企业电子商务系统的规划与设计研
    刍议防火墙的合理使用(1)
    浅谈行为引导教学方法在《计算机
    基于GP算法的知识发现系统
    电子政务人员培训的问题与建议(1
    光纤光缆和通信电缆技术发展与思
    浅谈Intranet在现代企业中的应用
    渐开线圆柱齿轮几何参数计算的计
    青年教师在医学微生物学留学生教
    Visual C++与Delphi/C++Builde
    Windows NT中的登记项及其完整
    用VC++6.0为对话框添加最小化
    基于零件虚拟工序队列的FMS动
    组件机制与操作系统的实现(1)
    可支持多语言的工作流动态演进
    Intel C++ 9.0编译器优化效果
    动态口令认证的网上选课系统的
    对C++中指针的深入研究
    基于ASP.NET技术中数据
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除