前一些章节已经讲述了COM的基本规范以及COM实现的细节.ppt

前一些章节已经讲述了COM的基本规范以及COM实现的细节.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
包容和聚合 对象和对象可以只是一个服务器与客户的关系。 对象的创建和释放完全在对象内部进行。对象构造时,同时创建对象的接口指针,以便自阿对象的成员函数中使用;当对象被释放时,它先释放对象,这样可以完成对象对对象的篏套使用,形成包容。要对其优化,便可在对象需要时创建对象,在不需要时释放对象。 聚合: 对象要实现两个接口和,而对象实现了接口,并且不要对此接口进行修改便可满足对象的要求。如果采用包容模型,那么对象要实现两个接口,并且在接口的成员函数中调用对象的相应函数,采用聚合则不一样。对象本生不实现接口,他只实现接口,但它也能提供接口的功能,当对象的客户请求接口时,对象把对象的接口暴露给客户,因此,客户调用是直接与对象进行交互的,而客户知道的只是对象。 包容和聚合 包容和聚合 包容实现 内部对象实现了接口,外部对象要实现接口和,其接口如下定义: { : (); }; { : (); }; 在客户程序、组件对象和组件对象三者之中,包容,客户程序只知道对象的存在,实际上对象是对象的客户,负责对象的创建、调用和释放等工作。 包容实现 列出其定义如下: { : ; : (); (); 成员函数 (); : * ;}; 因为对象包容对象,所以在对象的成员函数中要调用对象的接口成员函数,因此在对象的定义中加了数据成员,记录对象的接口指针。 包容实现 类的实现: (){ ; ;} (){ () ();} (){ (,( * *) ) ……} (){ ();} 包容实现 需要对其进行说明如下: () 在成员函数中,对象创建了包容对象,只要创建成功,则数据成员记录了对象的接口指针;当对象被析构时,通过调用对象的成员释放对象。 () 在对象实现接口的成员函数时,只是调用了对象的相应函数,出的概念在此体现出来。 可以在对象初始化构造时调用成员函数,因此对对象的类厂的成员函数的实现有所不同,其如下: (){ …… (); () …… (); (){……} (); ;} 包容实现 当要对接口进行扩展时,可以通过接口继承来实现接口的扩展,在实现新的接口时可以一个包容来重用以前的组件。例如,定义新的接口对接口进行扩展,其定义如下: { : ();}; 接口可以重用已经实现的接口。实际上新的对象只要实现新加的成员函数即可,而成员函数可以直接调用的成员实现。如果新的对象的类名仍为,则代码如下: (){ ();} 包容实现 在包容模型中,外部对象重用内部对象的接口时,可以是简单的调用关系,也可以在调用内部对象接口成员函数之前或之后加上其它的处理,甚至在某些情况下可以加上一些条件处理,比如下面的情况是有可能的: (){ (……){……} {…… (); ;}} 总之,包容模型的实质是客户--组件的关系,在实现外部对象时可以灵活使用。

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档