COM对象和接口c#



我对这个完全陌生,我正在msdn上学习:http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx#vcwlkcominteroppart1cclienttutorialanchor2

我的问题是为什么我们使用COM接口 COM CoClasses?实例化一个COM CoClass的实例,实例化一个新对象,它是旧对象,但被转换为COM接口,这似乎很奇怪。

我真的只是想抓住这里的意识形态…

理论是将接口(对象能做什么)与实现(它是如何做的,或者更具体地说,是实例化了哪些特定的代码来做这件事)分开。

仅将类型定义为接口允许COM指定跨多种语言的对象如何互操作;这是它的主要目标之一。由于接口规范是关于如何传递数据和调用方法的契约,任何语言都可以公开COM对象,而客户端不需要知道实现者(CoClass)的内部工作原理。

这允许VB6, .net, c++, php和任何其他语言在同一个应用程序中互操作。

关于COM的wikipedia文章在这方面有一些很好的背景。

这是软件工程中的一个基本设计原则,接口是一个契约,在com世界中,coClass是一个实现。对于COM,接口可以在IDL中定义,但实现(coClass)可以在VB、c++、。net等中完成。

相关内容

  • 没有找到相关文章

最新更新