рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Повторное использование СОМ-объектов

Повторное использование СОМ-объектов - раздел Философия, Автономное тестирование компонентов программного обеспечения Известно, Что Основным Средством Повторного Использования Существующего Кода ...

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

Применяются следующие термины:

-внутренний объект — это базовый объект;

-внешний объект — это объект, повторно использующий услуги внутреннего объекта.

При включении (делегировании) внешний объект является обычным клиентом внутреннего объекта. Как показано на рис, когда клиент вызывает операцию внешнего объекта, эта операция, в свою очередь, вызывает операцию внутреннего объекта.

При этом внутренний объект ничего не замечает.

Достоинство включения — простота. Недостаток — низкая эффективность при длинной цепочке «делегирующих» объектов.

Недостаток включения устраняет агрегирование. Оно позволяет внешнему объекту обманывать клиентов — представлять в качестве собственных интерфейсы, реализованные внутренним объектом. Как показано на рис, когда клиент запрашивает у внешнего объекта указатель на такой интерфейс, ему возвращается указатель на внутренний, агрегированный интерфейс. Клиент об агрегировании ничего не знает, зато внутренний объект обязательно должен знать о том, что он агрегирован.

Зачем требуется такое знание? В чем причина? Ответ состоит в необходимости особой реализации внутреннего объекта. Она должна обеспечить правильный подсчет ссылок и корректную работу операции Querylnterface.

Представим две практические задачи:

-запрос клиентом у внутреннего объекта (с помощью операции Querylnterface) указателя на интерфейс внешнего объекта;

-изменение клиентом счетчика ссылок внутреннего объекта (с помощью операции AddRef) и информирование об этом внешнего объекта.

Ясно, что при автономном и независимом внутреннем объекте их решить нельзя. В противном же случае решение элементарно — внутренний объект должен отказаться от собственного интерфейса IUnknown и применять только операции IUnknown внешнего объекта. Иными словами, адрес собственного IUnknown должен быть замещен адресом IUnknown агрегирующего объекта. Это указывается при создании внутреннего объекта (за счет добавления адреса как параметра операции CoCreatelnstance или операции IClassFactory::CreateInstance).

28. Работа с COM-объектами: размещение COM-объекта в других процессах – маршалинг и демаршалинг, описание COM-объекта в библиотеке операционной системы – IDL-описание и библиотека типа.

– Конец работы –

Эта тема принадлежит разделу:

Автономное тестирование компонентов программного обеспечения

Процесс разработки программного обеспечения в том виде как он определяется в современной модели жизненного цикла программного обеспечения... автономное тестирование компонентов программного обеспечения... комплексное тестирование разрабатываемого программного обеспечения...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Повторное использование СОМ-объектов

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Оценочное тестирование
После завершения комплексного тестирования приступают к оценочному тестированию, целью которого является тестирование программы на соответствие основным требованиям. Эта стадия тестирования особенн

Задачи службы сопровождения программного изделия
В процессе эксплуатации программного изделия пользователи взаимодействуют с организацией (группой), ответственной за со­провождение. Задачами службы сопровождения являются: 1. Сбор и анали

Идентификация интерфейса
У каждого интерфейса СОМ два имени. Простое, символьное имя предназначено для людей, оно не уникально (допускается, чтобы это имя было одинаковым у двух интерфейсов). Другое, сложное имя предназнач

Описание интерфейса
Для определения интерфейсов применяют специальный язык — язык описания интерфейсов (Interface Definition Language — IDL). Например, IDL-описание интерфейса для работы с файлами 1РаботаСФайлами имее

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

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

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

Маршалинг
Клиент может содержать прямую ссылку на СОМ-объект только в одном случае — когда СОМ-объект размещен в сервере «в процессе». В случае локального или удаленного сервера, как показано на рис, он ссыл

IDL-описаниеи библиотека типа
Для определения интерфейсов применяют специальный язык — язык описания интерфейсов (Interface Definition Language — IDL).Помимо информации об интерфейсах, IDL-описание может содержать информацию о

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги