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