Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
IDL-описаниеи библиотека типа
Помимо информации об интерфейсах, IDL-описание может содержать информацию о библиотеке типа. Библиотека типа определяет важные для клиента характеристики СОМ-объекта: имя его класса, поддерживаемые интерфейсы, имена и адреса элементов интерфейса. Рассмотрим пример приведенного ниже IDL-описания объекта для работы с файлами. Оно состоит из 3 частей. Первые две части описывают интерфейсы IРаботаСФайлами и IПреобразованиеФорматов, третья часть— библиотеку типа ФайлыБибл. По первым двум частям компилятор MIDL генерирует код посредников и заглушек, по третьей части — код библиотеки типа: -----------1-я часть [ object, uuid(E7CDODOO-1827-11CF-9946-444553540000) ] interface IРаботаСФайлами; IUnknown { import "unknown.idl" HRESULT ОткрытьФайл ([in] OLECHAR имя[31]); HRESULT ЗаписатьФайл ([in] OLECHAR имя[31]); HRESULT ЗакрытьФайл ([in] OLECHAR имя[31]); } ----------- 2-я часть [ object. uuid(5FBDD020-1863-11CF-9946-444553540000) ] interface IПреобразованиеФорматов: IUnknown { HRESULT ПреобразоватьФормат ([in] OLECHAR имя[31], [in] OLECHAR формат[31]); } ------------ 3-я часть [ uuid(B253E460-1826-11CF-9946-444553540000), version (1.0)] library ФайлыБибл { importlib ("stdole32.tlb"); [uuid(B2ECFAAO-1827-11CF-9946-444553540000) ] coclass СоФайлы { interface IРаботаСФайлами; interface IпреобразованиеФорматов; } } Описание библиотеки типа начинается с ее уникального имени (записывается после служебного слова uuid), затем указывается номер версии библиотеки. После служебного слова library записывается символьное имя библиотеки (ФайлыБибл). Далее в операторе importlib указывается файл со стандартными определениями IDL - stdole32.tlb. Тело описания библиотеки включает только один элемент — СОМ-класс (coclass), на основе которого создается СОМ-объект. В начале описания СОМ-класса приводится его уникальное имя (это и есть идентификатор класса — CLSID), затем символьное имя — СоФайлы. В теле класса перечислены имена поддерживаемых интерфейсов — РаботаСФайлами и IПреобразованиеФорматов. Как показано на рис. 13.24, доступ к библиотеке типа выполняется по стандартному интерфейсу ITypeLib, а доступ к отдельным элементам библиотеки — по интерфейсу ITypelnfo. Рис. 13.24. Доступ к библиотеке типа Диаграммы размещения
Диаграмма размещения (развертывания) — вторая из двух разновидностей диаграмм реализации UML, моделирующих физические аспекты объектно-ориентированных систем. Диаграмма размещения показывает конфигурацию обрабатывающих узлов в период работы системы, а также компоненты, «живущие» в них. Элементами диаграмм размещения являются узлы, а также отношения зависимости и ассоциации. Как и другие диаграммы, диаграммы размещения могут включать примечания и ограничения. Кроме того, диаграммы размещения могут включать компоненты, каждый из которых должен жить в некотором узле, а также содержать пакеты или подсистемы, используемые для группировки элементов модели в крупные фрагменты. При необходимости визуализации конкретного варианта аппаратной топологии в диаграммы размещения могут помещаться объекты. Узлы
Узел — физический элемент, который существует в период работы системы и представляет компьютерный ресурс, имеющий память, а возможно, и способность обработки. Графически узел изображается как куб с именем (рис. 13.25). Рис. 13.25.Обозначение узла
Как и класс, узел может иметь дополнительную секцию, отображающую размещаемые в нем элементы (рис. 13.26). Рис. 13.26.Размещение компонентов в узле
Сравним узлы с компонентами. Конечно, у них есть сходные характеристики: q наличие имени; q возможность быть вложенным; q наличие экземпляров. Последняя характеристика говорит о том, что на предыдущем рисунке изображен тип Контроллера. Изображение конкретного экземпляра, принадлежащего этому типу, представлено на рис. 13.27. Теперь обсудим отличия узлов от компонентов. Во-первых, они принадлежат к разным уровням иерархии в физической реализации системы. Физически система состоит из узлов, а узлы — из компонентов. Во-вторых, у каждого из них свое назначение. Компонент предназначен для физической упаковки и материализации набора логических элементов (классов и коопераций). Узел же является тем местом, где физически размещаются компоненты, то есть играет роль «квартиры» для компонентов. Рис. 13.27.Экземпляр узла
Отношение между узлом и компонентами, которые он размещает, можно отобразить явно. Отношение зависимости между узлом Контроллер и компонентами Вводы.ехе, Выводы.ехе иллюстрирует рис. 13.28. Правда, чаще всего такие отношения не отображаются. Их удобно представлять в отдельной спецификации узла. Рис. 13.28.Зависимость узла от компонентов
Группировку набора объектов или компонентов, размещаемых в узле, обычно называют распространяемым модулем. Для узла, как и для класса, можно задать свойства и операции. Например, можно определить свойства БыстродействиеПроцессора, ЕмкостьПамяти, а также операции Запустить, Выключить. |
||
Последнее изменение этой страницы: 2018-05-10; просмотров: 261. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |