09.04.2016 Views

Priemioop

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Проектирование редактора документ<br />

а поддержка оконных систем. В оконных системах стандарты внешнего обл<br />

ка обычно различаются. По возможности дизайн Lexi должен быть незав<br />

симым от оконной системы;<br />

а операции пользователя. Пользователи управляют работой Lexi с помощ<br />

элементов интерфейса, в том числе кнопок и выпадающих меню. Функци<br />

которые вызываются из интерфейса, разбросаны по всей программе. Раз<br />

ботать единообразный механизм для доступа к таким «рассеянным» фун<br />

циям и для отмены уже выполненных операций довольно трудно;<br />

а проверка правописания и расстановка переносов. Поддержка в Lexi так<br />

аналитических операций, как проверка правописания и определение м<br />

переноса. Как минимизировать число классов, которые придется модиф<br />

цировать при добавлении новой аналитической операции?<br />

Ниже обсуждаются указанные проблемы проектирования. Для каждой из н<br />

определены некоторые цели и ограничения на способы их достижения. Преж<br />

чем предлагать решение, мы подробно остановимся на целях и ограничениях. Н<br />

примере проблемы и. ее решения демонстрируется применение одного или н<br />

скольких паттернов проектирования.. Обсуждение каждой проблемы завершае<br />

ся краткой характеристикой паттерна.<br />

2.2. Структура документа<br />

Документ - это всего лишь организованное некоторым способом множест<br />

базовых графических элементов: символов, линий, многоугольников и других ге<br />

метрических фигур. Все они несут в себе полную информацию о содержании д<br />

кумента. И все же автор часто представляет себе эти элементы не в графическ<br />

виде, а в терминах физической структуры документа - строк, колонок, рисунк<br />

таблиц и других подструктур. 1 Эти подструктуры, в свою очередь, составлены<br />

более мелких и т.д.<br />

Пользовательский интерфейс Lexi должен позволять пользователям неп<br />

средственно манипулировать такими подструктурами. Например, пользовате<br />

следует дать возможность обращаться с диаграммой как с неделимой единице<br />

а не как с набором отдельных графических примитивов, предоставить средст<br />

ссылаться на таблицу как на единое целое, а не как на неструктурированное хр<br />

нилище текста и графики. Это делает интерфейс простым и интуитивно поня<br />

ным. Чтобы придать реализации Lexi аналогичные свойства, мы выберем так<br />

внутреннее представление, которое в точности соответствует физической стру<br />

туре документа.<br />

В частности, внутреннее представление должно поддерживать:<br />

а отслеживание физической структуры документа, то есть разбиение текс<br />

и графики на строки, колонки, таблицы и т.д.;<br />

Авторы часто рассматривают документы и в терминах их логической структуры: предложений, аб<br />

цев, разделов, подразделов и глав. Чтобы не слишком усложнять пример, мы не будем явно хран<br />

во внутреннем представлении информацию о логической структуре. Но то проектное решение, ко<br />

рое мы опишем, вполне пригодно для представления и такой информации.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!