|
Интерфейсы
СОМ определяет
стандарты для расположения в
памяти функций объектов. Функции
pасполагаются в виртуальных
таблицах (virtual tables ? vtables), т.е. таблицах адресов
функций, аналогичных таблицам
виртуальных методов (virtual method
table ? VMT} классов в
Delphi. Язык
программирования описывает каждую
виртуальную таблицу как ссылку на интерфейс
(interface).
Рассмотрим
интерфейс с точки зрения
отдельного класса. Каждый его
аспект можно представить как
специфический набор функций и
процедур, которые можно
использовать для управления
классом. Например, СОМ-объект,
представляющий растровый рисунок,
может поддерживать два интерфейса:
один содержит методы, которые
позволяют рисунку отображать себя
на экране монитора и
распечатываться, а другой
управляет записью и считыванием
рисунка в файл или из файла на
диске.
Таким образом
проявляются две части интерфейса.
Первая часть определяет интерфейс,
который включает коллекцию из
одного или нескольких описаний
функций в определенном порядке.
Определение интерфейса
распределяется между объектами и
пользователями объектов. Вторая
часть ? реализация интерфейса.
Определение интерфейса подобно
контракту между СОМ-объектом и его
клиентом, гарантирующим, что клиент
реализует этот объект определенным
образом посредством специфических
методов.
Введенный в Delphi
3 оператор Object
Pascal interface позволяет просто
определять СОМ-интерфейсы.
Описание интерфейсов семантически
подобно описанию классов, за
исключением того ,что интерфейсы
могут содержать только свойства и
методы, но не данные. Поскольку
интерфейсы не могут содержать
данные, их
свойства должны быть записаны и
считаны с помощью методов. Наиболее
же важно то, что интерфейсы не имеют
реализации ?
они только определены, но не
реализованы.
|
|