Answers:
它基本上是用于在Windows环境中编写程序的旧技术。它既庞大又复杂,管理/支持并不令人愉快。.NET框架是它的替代品。
COM对象基本上是一个黑盒子,它实现了一些已知的接口。它还可以在Windows中注册,以便程序可以获得它。
例如,假设有一些界面ICalculator
,我编写我的程序来使用。我现在可以交换任何用任何编程语言编写的对象(因为它是一个二进制接口)ICalculator
。然后在运行时,我可以为我的用户提供某种选项,以便他们可以选择使用FooCorpCalculator
用Python编写的COM对象,或者如果他们需要更高的速度,他们可以选择NinjaCalculator
用C语言编写。关键是,我写的我的程序依赖于接口而不是实现,然后选择使用稍后实现接口的实际COM对象。
当然,它还有很多,但这可能是一个让你更具体的例子。
COM是一组特定于Windows的技术,用于实现代码重用和互操作性,主要是在二进制级别(不一定是源代码级别)。
在20世纪90年代早期,比尔盖茨不允许Powerpoint开发团队为Powerpoint产品实施自己的图表子系统,因为微软已经拥有Excel。因此,他们制定了一个规范,使其内部产品能够交换数据并调用彼此的功能。微软推广了这些API,发布了它们以及更多的代码设计指南。
观看2006年的视频:Tony Williams:COM的共同发明者
我认为,现在在2012年,COM仍然是WMI和Office的核心。