Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы Мартын 1(ComCorbaLab2004).doc
Скачиваний:
32
Добавлен:
10.02.2016
Размер:
1.81 Mб
Скачать

1.7. Компоновка тестовой программы

Для того, чтобы продемонстрировать интеграцию визуальных и невизуальных компонентов, включая те, что используют точки взаимодействия, и те, что взаимодействуют при помощи событий, можно собрать тестовую программу, использующую 3 компонента. Хотя в этой программе используются достаточно простые компоненты, концептуально процедуры работы с ними не отличаются от тех, которые требуются при интеграции "настоящих" компонентов.

В программе используется концепция "модель - представление - управление": программа состоит из трех модулей (в данном случае - COM-компонентов), выполняющих основные функции приложения. Первый компонент - "модель" - выполняет основную полезную вычислительную нагрузку, преобразуя вводимые данные в результат. Второй компонент - "представление" - занимается отображением работы приложения. Компонент "управление" обеспечивает ввод данных. Такая концепция положена в основу многих приложений, и модель приложения MFC "Документ - представление" - частный вариант использования того же подхода.

В приводимом примере компоненты интегрированы в MFC-приложение с использование возможностей MFC и директивы #import. Приложение создает анимированный компонент представления, скорость анимации и цвет фона в котором контролируются отдельным компонентом с управляющими элементами. "За кулисами" третий компонент обновляет данные компонента представления, переводя установки элементов управления в значения параметров компонента представления. Клиентское приложение, содержащее компоненты, выполняет роль посредника во взаимодействии компонентов, показывая, как можно непосредственно управлять компонентами. Основные связи между компонентами и клиентским приложением показаны на рис. 1.1.

Рис. 1.1. Архитектура "Модель - представление - управление", используемая в тестовом приложении.

Создание приложения можно начать с мастера приложений MFC для создания программы, которая будет содержать компоненты. Пусть она называется DemoClient. Все, что нужно изменить в параметрах, предлагаемых мастером - это выбрать однодокументный интерфейс для программы. В этом случае для приложения будет использоваться модель "Документ - представление", но все необходимые изменения будут внесены непосредственно в класс CDemoClientView.

1.7.1 О компонентах

Все компоненты программы собраны вместе с исходным кодом в один проект, поэтому вся информация о компонентах собрана в одной библиотеке внутри одного DLL-файла. Именно поэтому директива #import применяется только к одному файлу. Все три компонента созданы при помощи ATL, это значительно упростило их создание.

Компонент, выполняющий роль модели, называется DemoModel. Он выполняет трансляцию установок компонента управления в команды для компонента представления (DemoView). В нем реализован интерфейс, построенный на точках взаимодействия, позволяющий компоненту-модели после начальной инициализации управлять компонентом представления напрямую, без посредничества клиентского приложения. Компонент DemoView использует ATL Composite Control для размещения в нем компонента DirectAnimation. Управляющий элемент используется только как контейнер для компонента DirectAnimation, который заполняет клиентскую область компонента DemoView, выполняя все прорисовки на основании установленных при помощи его интерфейса параметров.

Компонент DemoController - также составной ATL-компонент. Он содержит набор стандартных элементов управления Windows: ползунок, выпадающий список и кнопку. Помимо этого он является источником событий, которые захватываются клиентским приложением и передаются в виде команд компонентам модели и представления.