База Знаний: Философия OpenOffice.org. Базовый аспект "Объектная модель"

From Wiki
Revision as of 18:32, 2 April 2010 by Sancho (talk | contribs) (RU/k)
Jump to navigationJump to search

База Знаний
Философия OpenOffice.org. Базовые аспекты
Единое ядро
Редактируемые и нередактируемые документы

Объектная модель

Объект

В OOo действует принцип — всё есть объект.

У каждого объекта есть имя.

У каждого объекта может быть родитель и может быть потомок.

У каждого объекта есть состояние и свойства.

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

Имя объекта

Не бывает безымянных объектов. Только абзацам не присваиваются имена. Следовательно, любому вставленному в документ объекту должно быть присвоено имя. За неукоснительным исполнением этого правила следит сам OOo, автоматически присваивая имена в момент добавления объекта в документ. Например, если в тексте вставлено 53 таблицы, то все они будут иметь имена вида «ТаблицаX», где «X» - это номер объекта в порядке его создания. То же самое относится и к рисункам, OLE-объектам, врезкам и т. д. Все эти объекты отображаются в Навигаторе. Следовательно, если документ сложный со множеством объектов, то им предпочтительно самостоятельно давать осмысленные имена, чтобы в дальнейшем можно было легко ориентироваться в документе. На это надо затратить немного времени, которое затем сторицей окупается скоростью навигации.

Состояния объекта

Есть два состояния объекта — если он не выделен, то он не активен. Если он выделен (курсор установлен на этом объекте), то он активен и можно им манипулировать — например, обратиться к его свойствам через контекстное меню. С родителями, потомками и наследованием тоже всё просто. Например — абзац. При наборе текста после нажатия [Enter] создаётся новый (условно[1] говоря — дочерний) абзац с теми же атрибутами, что и предыдущий (так же условно говоря — родительский).

Наследование

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

  1. Наследование всегда идёт сверху вниз, и никогда наоборот. То есть, от родителя к потомку.
  2. Все унаследованные свойства объекта можно изменить. При этом изменение, сделанное в потомке, имеет преимущество над «получаемым в наследство» — унаследованным свойством.

Что это значит на практике?

Допустим, имеется текст с тремя уровнями заголовков, размеченный стилями «Заголовок 1», «Заголовок 2», «Заголовок 3», «Основной текст», «Цитата» и «Подпись». Для стиля «Цитата» установили зелёный цвет шрифта. Весь остальной текст — чёрный. И тут возникает необходимость изменить чёрный цвет на синий. Для этого модифицируется один единственный стиль «Базовый», так как он является родителем для всей системы стилей. При этом параметр цвета в стиле «Цитата» не изменится и останется «зелёным».

Метаобъект

Кроме объекта, в объектной модели существует ещё метаобъект.

Метаобъект представляет собой контейнер, содержащий группу объектов.

Любой документ является метаобъектом, содержащим объекты текст, графику и т. д. Картинка с подписью — это метаобъект «врезка», содержащий «изображение» и «текст». Метаобъект «график» содержит объекты «координатные оси» «подписи» «кривые данных». У метаобъекта, как и у объекта, есть свойства, через которые можно управлять всей группой объектов, входящих в метаобъект. Например, можно переместить метаобъект «врезка с картинкой и подписью». При этом, разумеется, переместятся и картинка, и подпись. При создании графических элементов часто доступны операции группировки и разгруппировки. При выполнении операции группировки создаётся метаобъект, включающий в себя объекты — элементы, из которых состоит группа. При выполнении операции разгруппировки происходит уничтожение метаобъекта с извлечением из него всех входящих в него объектов. В большинстве случаев есть возможность тем или иным способом управлять объектами внутри метаобъекта.

Прямым следствием аспекта «Объектной модели» является концепция стилей в OOo. Данная концепция охватывает все фундаментальные элементы документа — символ, абзац, список, врезку и страницу. Следовательно, для каждого из этих элементов создана своя категория стилей. И именно на тотальном использовании стилей покоится философия OOo.

Без использования стиля в OOo не создаётся ни один объект. Явно или не явно, но каждый объект основывается на стиле.

Из этой философии проистекает следующий аспект — OOo рассчитан на высокопроизводительное форматирование профессионально оформленных документов через стили с возможностью их последующего многократного использования, а не на ручное форматирование, которое необходимо выполнять для каждого символа.

Отсюда же проистекает и концепция шаблонов как метаобъекта, хранящего в себе не только стили, но и структуру электронного документа в целом.

Офисный пакет используется для подготовки документов (прописная истина). Как бы ни было велико предприятие, на каждом рабочем месте количество видов документов всегда конечно. Это договора, приказы, отчёты, служебные письма и т. д. Практика показала, что часто подготовка документов происходит по одной схеме:

  • Среди вороха файлов находится тот, который должен послужить «рыбой» в данном конкретном случае.
  • Найденная «рыба» открывается и из неё начинают удалять всё, что не соответствует текущему моменту. При этом требуется внимательно прочесть всё что есть, дабы не оставить ненужного и не удалить лишнего.
  • В вычищенную «рыбу» вбивают новые данные — получается новый документ.
  • «Рыба» сохраняется под новым именем.

То есть — каждый раз изобретается велосипед. Интересный вопрос — чем грозят подобные «изобретения», и что происходит с производительностью труда? А происходит вот что:

  • Уже созданный и утверждённый документ открывается на редактирование и из него удаляется критически важная информация. В случае аварии или неквалифицированных действий пользователя, в том числе — ошибочного сохранения, документ будет уничтожен. То есть повышаются риски потери информации. Это технологическая «выгода» от «изобретения».
  • Часто возникает ситуация, когда данные из документа удалены не полностью и попадают с новым документом к другому адресату. Так, не редко клиенты узнают цены, которые предложены другим клиентам. То есть происходит утечка конфиденциальной информации.Это коммерческая «выгода» от «изобретения».
  • Открывая ранее созданный файл, клерк вынужден его ещё раз внимательно прочитывать, чтобы понять, что из него надо удалить. Затем второй проход — удаление информации. Далее — третий проход — ввод новых данных. Таким образом, на подготовку документа тратится в три раза больше времени, чем требуется.Это производительная «выгода» от «изобретения».

Общий вывод таков: использование «рыбы» повышает риски и снижает производительность труда.

Не слишком ли дорого обходится каждый документ?

Итак, тезис — клерк не изобретатель.

Это значит, что клерк не должен изобретать велосипед при подготовке каждого документа. Он не должен думать над формой документа. Он не должен тратить время своего работодателя на очистку формы документа.

Отсюда следующий тезис — у клерка своя работа.

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

И ещё один штрих к портрету.

Во времена пишущих машинок бланки организаций заказывались в типографиях и на всём предприятии сей бланк был един. Когда настала эра PC и лазерных принтеров, на каждом рабочем месте стала рисоваться «своя» форма бланка организации, сделанная по принципу «кто в лес, кто по дрова». Добиться единообразия формы стало практически невозможно. И так стало не только с бланками, но и с формами других общих документов.

Система управления шаблонами в OOo позволяет без усилий создать единый репозитарий шаблонов для всей организации, где для документа нужно будет иметь всего лишь один файл шаблона. При необходимости в этот шаблон вносятся изменения, которые сразу же становятся доступны для всех сотрудников, без надобности обходить каждое рабочее место и доставлять туда обновлённый шаблон.

Таким образом, философия OOo — это философия шаблонов и стилей.


Далее:
Логика интерфейса



А. Е. Харламенков
2009

Template:KbВottom

  1. Условно — потому что здесь несколько более сложная система наследования.