Шаг 20 - Интерфейсы

Ключевое понятие в программировании COM. Когда у нас есть готовый COM DLL, скажем, у нас есть модуль, внутри модуля находятся компоненты. Каждый компонент состоит из двух классов. Из абстрактного класса или интерфейса, внутри которого нет реализации и непосредственной реализации. Вы пока создавая COM DLL на все это не обращали внимание, потому что VB делал все автоматически. Реальная картина такая.

gif/20_1.gif (4091 b)

Обращение идет к dll, дальше к интерфейсу, который уже позже указывает на конкретную реализацию. Обращение идет именно через класс интерфейса. Повторяю, пока VB его создает автоматически. Класс интерфейса - это просто болванка без методов. Обратите внимание на знак подчеркивания перед классом. Это правило VB. Имя интерфейса полученного автоматически получается путем подстановки знака подчеркивания перед именем класса. Итак, мы знаем, что у нас для модели COM любой объект представлен двумя классами: интерфейсом и классом реализации (coclass).

gif/20_2.gif (588 b)

Результаты работы производимой VB помещаются в библиотеку типов и Вы сможете увидеть, что сделано воспользовавшись утилитой OLE/COM Object View:

gif/20_3.gif (9949 b)

Здесь Вы видите интерфейсный класс и сокласс. Кстати и результаты работы бинарной совместимости, но об этом позже. Значения не имеет, что Вы используете VC или VB, Delphi, Java и так далее. Все работает совершенно одинаково и по этому принципу. Очень близкое понятие рассказано в MSDN: "Шаг 108 - Универсальные классы".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.