Microsoft Component Object Model Interface
Интерфейс (Inter — «взаимо» и face — «поверхность») — это набор операций, используемых для определения услуг, предоставляемых классом или компонентом.
Интерфейс задаётся абстрактным классом и реализуется другими, конкретными.
Проще говоря, интерфейс — это контракт, который обязуется выполнить класс.
Интерфейсы в 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». Либо в виде кружочков, в этом случае происходит подавление отображения содержашихся в интерфейсе операций.
