Диспетчерские интерфейсы. Двойные интерфейсы

   
На этом шаге мы рассмотрим двойные интерфейсы.

   
Наиболее предпочтительно реализовать диспетчерский интерфейс в виде двойного интерфейса
(dual interface). В нем все методы Invoke() доступны напрямую - как записи таблицы vtable.
На рисунке 1 показана возможная реализация двойного интерфейса: адреса методов IEncode одновременно
включаются как в vtable, так и в справочную таблицу функции Invoke().


Рис.1. Реализация двойного интерфейса

   
При наличии двойного интерфейса параметры и методы, предоставляемые компонентом, остаются доступными через
диспетчерский интерфейс с помощью языков типа VBScript, а языки типа C++ могут обращаться к
ним напрямую через vtable. В Visual Basic доступны как диспетчерский интерфейс, так и vtable.
Двойной интерфейс позволяет клиентам, способным обращаться к vtable, быстрее запрашивать методы, при
этом он еще и поддерживает клиентов, нуждающихся в диспетчерском интерфейсе.

   
Со следующего шага мы начнем знакомиться с потоковыми моделями.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий