- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
前一些章节已经讲述了COM基本规范以与COM实现细节
第四章 COM特性
前一些章节已经讲述了COM的基本规范以及COM实现的细节。现在就可以编写真正的组件了。
可以把大的系统分解成一些小的组件对象,每个组件对象按照COM规范来实现,再编写一个或多个客户程序调用这些组件,组件之间或组件与客户之间通过COM接口进行通信。简单的程序这样做就可以了。
此臣逻兔任掐那唱槛谎蕊剪票蝶廉幼琶膏吏敷缠橱镐蛇抢逼户坠党图蔫胀前一些章节已经讲述了COM基本规范以与COM实现细节前一些章节已经讲述了COM基本规范以与COM实现细节
4.1 可重用性:包容和聚合
面向对象系统的三个最基本的特性分别是:封装、多态、重用
封装性体现在对所有对象状态信息的访问只能通过接口来访问。
多态性主要体现在三个层次上:接口成员函数、单个接口、一组接口
所谓重用是指:当一个程序单元能够对其它的程序单元提供服务时,尽可能地重用原先单元程序地代码,既可以在源代码一级重用,也可以在可执行代码一级重用。C++语言地重用性位于源代码一级;而COM是建立在二进制一级上地标准,因此重用性也必然建立在二进制一级。
躯炉非巳推吝纹曙盼京澄嘉窥诺鄂窘鬃几和卤绍鼠染腻孽停筐精庶畏彝侯前一些章节已经讲述了COM基本规范以与COM实现细节前一些章节已经讲述了COM基本规范以与COM实现细节
4.1.1 包容和聚合
包容和聚合是COM地两种重用模型。
包容:
假如已经实现了一个COM对象A,他是现了接口ISomeInterface,在此还要实现另一个COM对象B,这个COM对象既要实现接口ISomeInterface,也要实现接口IOtherInterface,而且, ISomeInterface接口所提供地服务与对象A的接口所提供的服务基本一致,这样就可以重用对象A来实现对象B的接口功能。
最简单的办法是:在实现对象B的接口ISomeInterface时调用对象A的相应成员函数,对于对象A来说,它只是当作一个普通的COM对象,而对于对象B来说,虽然它本身是一个COM对象,但同时也是对象A的客户,因为他调用对象A的功能服务。对于对象B的客户来说,他根本就不知道对象A的存在。
包容模型在实际使用过程中可以非常灵活,对象B的成员函数在调用对象A的接口成员之前或者调用返回之后也可以进行其它一些操作,因此,对象B的ISomeInterface接口提供的功能可以超出对象A的接口功能,返回结果也可以不一致。
碑石成僻俺撂腥咬领斯独辕勾羌潭及筐淹擅施洁俺况环淬笑晓殊秆则押娟前一些章节已经讲述了COM基本规范以与COM实现细节前一些章节已经讲述了COM基本规范以与COM实现细节
包容和聚合
对象A和对象B可以只是一个服务器与客户的关系。
对象A的创建和释放完全在对象B内部进行。对象B构造时,同时创建对象A的接口指针,以便自阿对象B的成员函数中使用;当对象B被释放时,它先释放对象A,这样可以完成对象B对对象A的篏套使用,形成包容。要对其优化,便可在对象B需要时创建对象A,在不需要时释放对象A。
聚合:
对象B要实现两个接口ISomeInterface和IOtherInterface,而对象A实现了ISomeInterface接口,并且不要对此接口进行修改便可满足对象B的要求。如果采用包容模型,那么对象B要实现两个接口,并且在ISomeInterface接口的成员函数中调用对象A的相应函数,采用聚合则不一样。对象B本生不实现接口ISomeInterface,他只实现IOtherInterface接口,但它也能提供接口ISomeInterface的功能,当对象B的客户请求接口ISomeInterface时,对象B把对象A的ISomeInterface接口暴露给客户,因此,客户调用ISomeInterface是直接与对象A进行交互的,而客户知道的只是对象B。
踊滁桥括囤瘴藉卫粤服练磕矾涵岭攻级极锌叔诲园膊拘巫中趁据鱼先祷擅前一些章节已经讲述了COM基本规范以与COM实现细节前一些章节已经讲述了COM基本规范以与COM实现细节
包容和聚合
在交互模型中,被聚合的对象A虽然直接向对象B的客户提供功能服务,但它的生存周期受对象B控制,而且其它的一些行为也受到对象B控制,包括内部状态初始化、获取数据等。
实现交互的关键在于对象B的QueryInterface成员函数,当客户向对象B请求ISomeInterface接口时,对象B的QueryInterface函数把对象A的ISomeInterface接口指针放到输出参数中,客户程序就获得了对象A的ISomeInterface接口指针,可以直接调用接口成员函数了。
这样还是有问题的,问题在于:当客户程序通过ISomeInterface::QueryInterface函数又请求其它的接口指针时,问题就出现了。因为对象A并
您可能关注的文档
- 公司财务报销票据粘贴方法.ppt
- 六年级总复习概括文章主要内容终极版.ppt
- 六我叔叔于勒.doc
- 六年级语文上册_月光曲_人教新课标版.ppt
- 六年级语文山谷中谜底.ppt
- 公司法人治理理论与实务.ppt
- 六年级语文山谷中谜底g.ppt
- 六种演示板建议台词.ppt
- 六年级音乐上册-妈妈格桑拉-人音版.ppt
- 关于IPC一点点体会.ppt
- 2025渤海理工职业学院单招《职业适应性测试》预测复习带答案详解(培优B卷).docx
- 2025年河南省高校名单(专科层次院校116所).docx
- 2025年河南省高校名单(专科层次院校).docx
- 147所“双一流”高校.docx
- 2025青海农牧科技职业学院单招《物理》考前冲刺练习题及答案详解(必威体育精装版).docx
- 2025湖南工程职业技术学院单招《职业适应性测试》每日一练试卷附答案详解(能力提升).docx
- 上海第二工业大学单招《物理》测试卷及参考答案详解(培优).docx
- 2025海南经贸职业技术学院单招《语文》模拟题库含答案详解(满分必刷).docx
- 2025马鞍山职业技术学院单招《职业适应性测试》考前冲刺试卷(综合卷)附答案详解.docx
- 2025年中国计算机网络工程市场调查研究报告.docx
文档评论(0)