Что это? Как я понял, это своего рода специальная технология Microsoft для некоторых объектов. Но что именно?
4 ответа
COM-объект - это в основном черный ящик, который реализует некоторый известный интерфейс. Он также может зарегистрироваться в Windows, чтобы программы могли его использовать.
Например, скажем, есть некоторый интерфейс ICalculator
, который я пишу для использования в своей программе. Теперь я могу поменять любой объект, написанный на любом языке программирования (так как это двоичный интерфейс), который реализует ICalculator
. Затем во время выполнения я могу предоставить пользователям какую-то опцию, чтобы они могли использовать COM-объект FooCorpCalculator
, написанный на Python, или, если им нужна большая скорость, они могут выбрать NinjaCalculator
написанный на C. Дело в том, что я пишу свою программу так, чтобы она зависела от интерфейса, а не от реализации, а затем решаю использовать реальный объект COM, который реализует интерфейс позже.
Конечно, есть еще много чего, но это может быть примером, который делает его более конкретным для вас.
Смотрите эту статью в Википедии: объектная модель компонентов
Компонентная объектная модель (COM) - это стандарт двоичного интерфейса для программных компонентов, введенный Microsoft в 1993 году. Он используется для обеспечения межпроцессного взаимодействия и создания динамических объектов в широком диапазоне языков программирования. Термин COM часто используется в индустрии разработки программного обеспечения Microsoft как общий термин, который охватывает технологии OLE, OLE Automation, ActiveX, COM+ и DCOM.
COM-объект часто реализуется в файле DLL. Они могут использоваться программами для различных функций. Используемый здесь термин "объект" относится к объектам в объектно-ориентированном программировании.
Это в основном старая технология, используемая для написания программ в среде Windows. Это большой и сложный и не было приятно управлять / поддерживать. .NET Framework - это его замена.
COM представляет собой набор технологий, специфичных для Windows, для обеспечения возможности повторного использования кода и обеспечения взаимодействия, прежде всего на уровне двоичного кода (не обязательно на уровне исходного кода).
В начале 1990-х годов Билл Гейтс не позволил команде разработчиков Powerpoint внедрить собственную подсистему построения диаграмм для продукта Powerpoint, потому что у Microsoft уже был Excel. Поэтому они разработали спецификацию, позволяющую их собственным продуктам обмениваться данными и вызывать функции друг друга. Microsoft обобщила эти API, опубликовала их и многое другое.
Смотрите это видео с 2006 года: Тони Уильямс: Со-изобретатель COM
Я думаю, что сейчас, в 2012 году, COM все еще находится в ядре WMI и Office.