组件技术复习内容2013(卡卡宝).docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组件技术复习内容2013(卡卡宝)

软件组件技术复习内容 软件组件技术作为软件发展中的一个重要阶段和当前主流软件实现技术,涵盖了软件开发的各个层次和各个方面,学习时需要区分问题的层次和范围,以达到学以致用的目的。 组件 要了解学习软件组件技术,首先要了解三个问题:什么是组件、为什么组件和组件的效果。 什么是组件,反过来就是组件是什么。组件是一种软件、一种为了实现软件的跨平台、跨语言、跨机器,具有独立接口和实现模型的、以可执行形态存在的软件模块。 为什么组件,即组件出现的原因,从软件发展角度看有三种决定性因素,即:平台、人员和问题。问题是驱动、平台是支撑、人员是关键。组件技术要解决的是分布式开发和执行环境下的跨平台、跨机器、跨语言问题,硬件的发展特别是网络技术的发展提供了组件的平台基础,用户的普遍化和开发的领域化从人员角度对软件提出了新的要求。 组件效果怎么样,解决了跨平台、跨机器、跨语言的问题,在多态、继承、绑定、封装和存在形态等方面都有不同于前期软件的特征。具体如下表: 特征 对象 组件 多态 函数多态(同名的方法可以根据参数类型和个数调用不同的函数体)和类多态(同一类型的变量可以根据实例化对象的不同调用不同的类里面的方法) 接口多态(同一接口指针可以调用不同的实现这一接口的组件、同一组件的接口指针可以通过类型转换调用组件上不同的接口内的方法) 继承 类继承或代码继承(通过继承重用父类的方法或属性) 接口继承或功能继承(通过转发调用或接口重用另一组件的功能) 绑定 编译时绑定或早绑定(除类多态是迟绑定外) 运行时绑定或迟绑定(执行时才确定调用的组件实例) 封装 类封装,通过public、protected和private等权限标识符确定方法和属性的使用范围 接口封装,接口指定了可以访问的内容和范围 形态 以人可以阅读改写的代码形式存在 以机器可理解执行的编码存在 COM组件 COM是Component Object Model首字符,即组件对象模型,它是建立在二进制层次上的标准,定义了大量的标准接口用于各种用途,具有平台无关性;但COM实现Windows实现了规范要求以及许多辅助功能 接口继承 与类或对象不同,组件的二进制形态或可执行代码形态导致组件重用不能基于代码,而要重用功能,为此采用了基于功能转发的重用方式。根据转发的方式不同,分为包容和聚合两类。 包容时外部组件包含指向内部组件接口的指针. 外部组件相对来说是内部组件的一个客户,它将使用内部组件的接口来实现它自己的接口. :对被包容对象没有特殊要求,任何组件都能够通过包容被继承,包容对象要具有和被包容对象的相同接口,通过接口内的方法调用来使用内部对象的接口功能。 聚合时:对被聚合对象必须经过处理,把Iunkown接口进行分割,一个保持原来的名字,但实现功能的转发,另一个采用新名字,内容采用原来的实现;外部对象不要求具有和内部对象同名的接口,外部对象的QueryInterface实现中要实现对被聚合接口的查询。 相同点:包容和聚合都是实现接口继承的,客户程序不受所用实现方法的影响,外部对象的生命周期都包含内部对象的生命周期,客户程序能够访问到内部对象的接口。 不同部分: 总之,包容和聚合都实现了一个接口对另一个接口的重用,但包容是通过方法调用的间接调用,可以更改被重用的功能;聚合是直接把客户调用转发给被聚合对象,不能更改功能。 可连接对象 客户程序和组件程序的连接是通过组件接口的指针调用组件的方法,而组件的远程化和大型化为组件执行带来了执行和通信的不确定性。如何使客户程序及时获取组件信息成为客户下一步行为的依据。 存在两种解决策略,一是客户主动采用轮询的方式获取组件信息,缺点是占用组件执行时间,而且由于轮询有周期,存在延迟;二是实现组件到客户程序的连接,以便组件及时发消息给客户程序。 COM技术采用后一种策略,通过创建可连接组件实现客户程序和组件之间的连接,而且由于一个组件同时可能供多个客户调用,两个或两个以上客户程序需要组件信息时需要多个连接,进一步引入了连接点容器实现对多个连接点的管理。连接点组件需要实现IConnectionPoint接口,连接点容器需要实现IConnectionPointContainer接口。这两个接口的内容如下: 自动化对象 自动化对象解决了不支持指针语言对组件的调用(跨语言问题)。 它是采用Idispatch接口和其实现对象来解决的。它是采用统一函数调用的方式来实现对所有组件的统一调用,先定义了一个union类型的变量Variant来统一不同类型的参数,然后定义了一个结构体数组统一不同个数的参数,最后把方法名也作为函数参数,定义了Invoke方法。通过自动化对象可以支持不支持指针的语言对组件的调用,但效率较低。 线程和套间 组件程序的跨平台、跨语言、跨进程和跨机

您可能关注的文档

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档