Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Поддержка технологий COM >> Object Pascal и COM >> Интерфейсы

[Назад]    [Содержание ]    [Вперед]

  


Интерфейсы


СОМ определяет стандарты для расположения в памяти функций объектов. Функции pасполагаются в виртуальных таблицах (virtual tables ? vtables), т.е. таблицах адресов функций, аналогичных таблицам виртуальных методов (virtual method table ? VMT} классов в Delphi. Язык программирования описывает каждую виртуальную таблицу как ссылку на интерфейс (interface).

Рассмотрим интерфейс с точки зрения отдельного класса. Каждый его аспект можно представить как специфический набор функций и процедур, которые можно использовать для управления классом. Например, СОМ-объект, представляющий растровый рисунок, может поддерживать два интерфейса: один содержит методы, которые позволяют рисунку отображать себя на экране монитора и распечатываться, а другой управляет записью и считыванием рисунка в файл или из файла на диске.

Таким образом проявляются две части интерфейса. Первая часть определяет интерфейс, который включает коллекцию из одного или нескольких описаний функций в определенном порядке. Определение интерфейса распределяется между объектами и пользователями объектов. Вторая часть ? реализация интерфейса. Определение интерфейса подобно контракту между СОМ-объектом и его клиентом, гарантирующим, что клиент реализует этот объект определенным образом посредством специфических методов.

Введенный в Delphi 3 оператор Object Pascal interface позволяет просто определять СОМ-интерфейсы. Описание интерфейсов семантически подобно описанию классов, за исключением того ,что интерфейсы могут содержать только свойства и методы, но не данные. Поскольку интерфейсы не могут содержать данные, их свойства должны быть записаны и считаны с помощью методов. Наиболее же важно то, что интерфейсы не имеют реализации ? они только определены, но не реализованы.



[Назад]    [Содержание ]    [Вперед]

  


  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017