Руководство разработчика

Содержание 

  1. Обзор
  2. Указатель имён
  3. Примеры
  4. Подгонка платформы

* ... работа не закончена


Обзор

Этот раздел содержит обзор концепций библиотеки.

Дисплей/стратегия/модель (ДСМ) (англ. Display/Strategy/Model (DSM) )

Главной концепцией библиотеки является концепция дисплей/стратегия/модель (ДСМ). 

Компоненты ДСМ оформлены как параметры шаблона, объединяемые в одно целое combined с помощью notus::view.

template<
      typename Display
    , typename Strategy
    , typename Model
> struct view;

view обеспечивает пересылку событий от дисплея и модели к подходящим стратегиям. Стратегии устроены как кортежи (tuples), поэтому несколько стратегий могут быть заданы в одном view. Например.

typedef TUP::tuple< mouse_event_strategy, paint_strategy > my_strategy;
typedef view< window, my_strategy, some_data > my_dsm_view;

Стратегии могут быть вложенными.

typedef TUP::tuple< keyboard_event_strategy, my_strategy > my_extended_strategy;

Перечень готовых дисплеев см. notus::displays. Вы всегда можете сделать собственный дисплей или произвести его от уже существующего с помощью наследования.

Весь ум приложения заключён в стратегиях. Стратегии определяют обработчики событий. view посылает события этим обработчикам. Заодно view посылает ссылку на себя. Используя эту ссылку, стратегии могут могут получить доступ к объекту view, моделям и дисплеям.

Модель - активный объект в Нотус. Если приложение обновляет данные модели, генерируется событие обновления данных. Если пользователь задал стратегию для событий такого типа, view вызывает эту стратегию. Типичный сценарий может выглядеть так.

Менеджеры

Пространство имён managers предназначено для построения высокоуровневых GUI-конструкций представляющих собой типичные случаи использования. Основные строительные блоки - notus::view-ы и другие менеджеры. Менеджер есть конкретный дизайн для определённого случая использования или семейства случаев.

Жизненный цикл объекта

Как быть с жизненным циклом объектов? Вопрос об отношении жизненного цикла физических объектов GUI, таких как HWND в Win32 или wxWindow в wxWindows, к жизненному циклу экземпляров классов Нотус.

Нотус использует следующий набор правил:


© Copyright Евгений Гладышев, 2004

SourceForge.net Logo