Microsoft Component Object Model Interface

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Kolan (обсуждение | вклад) в 07:51, 21 мая 2006. Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Изображение интерфейса и реализующего его класса в «Together».

COM-интерфе́йс (от COMангл. Component Object Model и англ. interface — взаимодействие) — набор абстрактных функций и свойств, через который COM-компонент взаимодействует с другими программами. Интерфейс задаётся абстрактным классом и реализуется другими, конкретными. К COM-интерфейсам стандарты предъявляют жёсткие требования по реализации определённых функций, поэтому иногда образно говорят, что интерфейс — это контракт, который обязуется выполнить класс. С конца XX века многие среды программирования начали внедрять у себя понятие интерфейса для поддержки технологии COM или сходных технологий.

Интерфейсы в Delphi

В Delphi интерфейсы были введены для поддержки COM технологии корпорация «Microsoft».

Интерфейсы в Delphi напоминают классы. Как все классы являются наследниками класса TObject, так все интерфейсы произходят от интерфейса IUnknown. Для работы с интерфейсами программисту необходимо приложить некоторые усилия, а именно создать и правильно реализовать методы: QueryInterface,_AddRef, _Release. Эта рутинная работа уже проделана в классе TInterfacedObject.

Пример объявления интерфейса:

 IMyInterface = interface
   procedure DoSomething;
 end;

Пример класса — наследника TInterfacedObject

 TMyClass = class(TInterfacedObject, IMyInterface)
   procedure DoSomething;
 end;

Так как интерфейс — это как бы контракт, который нужно выполнить программе, то она не компилируется пока в TMyClass не будет реализована procedure DoSomething;

Интерфейсы в UML

В UML интерфейсы изображаются как классы со стереотипом «interface». Либо в виде кружочков, в этом случае происходит подавление отображения содержашихся в интерфейсе операций.

См. также