一.前言
【程序编程相关:在ASP中利用COM组件开发Web应用程】 【推荐阅读:ANALOG DEVICES和TTPCO】 咱们用 atl 写了一个简单的 com 组件,之所以说简单,是因为在组件中,只实现了一个自定义(custom)的接口 ifun.当然如果想偷懒的话,我们可以把 200 个函数都加到这一个接口中, 果真如此的话,恐怕就没有人喜欢使用我们这个组件了.一个组件既然可以提供多个接口,那么我们在设计的时候,就应该按照函数的功能进行分类,把不同功能分类的函数用多个接口表现出来.这样可以有如下的一些好处: 【扩展信息:回首2004 .COM财富流向何处?】 1.一个接口中的函数个数有限.功能集中,使用者容易学习.记忆与调用.一个接口到底提供多少个函数合适那?答案是:如果你是黑猩猩,那么一个接口最多3个函数,如果你是人,那么一个接口最好不要超过7个函数.(注1) 2.容易维护.至少你肉眼搜索的时候也方便一些呀. 3.容易升级.当我们给组件增加函数的时候,不要修改已经发表的接口,而是提供一个新的接口来完成功能扩展.(注2) 本回书着落在------如何实现一个组件,多个接口.二.接口结构
图一.组件a有2个自定义接口,组件b是a的升级 某日,我们设计了组件a,它有2个自定义(custom)接口.imathe 有函数add()完成整数加法,istr 有函数cat()完成字符串连接.忽一日,我们升级组件a到b,欲增加一个函数 mul() 完成整数的乘法.注意,由于我们已经发表了组件a,因此我们不能把这个函数安排到老接口 imathe 中了.解决方法是再定义一个新接口 imathe2,在新接口中增加 mul() 函数并依旧保留 add() 函数.这样,老用户不知道新接口 imathe2 的存在,他仍然使用旧接口 imathe;而新用户则可以抛弃 imathe,直接使用 imathe2 的新接口功能.看,多平顺的升级方式呀! 三.实现 3-1.首先用 atl 实现一个自定义(custom)接口 imathe 的com组件,在接口中完成 add()整数加法函数.注意!!!一定是自定义(custom)的接口(dual 双接口以后再介绍).如果你不了解这个操作,请重新阅读我以前的文章. 3-2.查看 idl 文件.完成上一个步骤后,打开idl文件,内容如下:(名称及 uuid 会与你程序中的idl有所不同)... 下一页