Информатика на пять О нас
 Добавить в избранное
5byte.ru
 Теория
 8 класс
 9 класс
 10 класс
 11 класс
Задания
 8 класс
 9 класс
 10 класс
 11 класс
Книги
Тесты
ЕГЭ
Turbo Pascal 7
 Описание
 Задачи
HTML
Рефераты

14.1. Пример использования ООП

В связи с тем, что использование ООП применительно к небольшим программам неэффективно, возникает трудность иллюстрации тех или иных его положений. Тривиальные примеры могут создать впечатление искусственности ООП, его неэффективности, сложные примеры потребуют много усилий для уяснения принципов работы той или иной программы. В связи с этим мы решили привести лишь один пример сравнительно сложной программы (см. приложение Г) - экранного редактора символьной информации, на котором будут иллюстрироваться все моменты ООП. Т. к. такие редакторы довольно сложны, приведена только его часть, выполняющая небольшое количество функций. В ней совершенно не рассмотрен вопрос работы с внешними файлами, куда записывается набранная в редакторе информация, ограничено число обрабатываемых редактором клавиш. Далее будет сказано, как, используя принципы ООП, можно расширить его функции. Редактор предназначен только для режима дисплея, когда на экране размещается 25 строк по 80 символов в строке. Не следует рассматривать приведенную программу как высококачественный редактор - это учебный пример, и он не является лучшим. В частности, программа неудовлетворительна с точки зрения быстродействия. Более того, в некоторых случаях выбиралась далеко не оптимальная реализация с целью проиллюстрировать те или иные положения ООП, без которых можно было бы и обойтись. Основная часть редактора оформлена в виде модуля, у которого можно было бы почти полностью не приводить исполнительную часть (implementation), что существенно уменьшило бы размеры примера. Эта часть приведена полностью лишь на тот случай, если читатель захочет проверить работу программы и правильность рассматриваемых положений непосредственно на вычислительной машине.

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

Весь текст, набранный в редакторе, представляет собой последовательность строк, а т. к. размер строки может быть произвольным, целесообразно строки набирать из отдельных элементов (вероятно, лучше всего размером в строку экрана), добавляя эти элементы по мере необходимости. Следовательно, набранный текст должен иметь довольно сложную структуру строк, которые, в свою очередь, состоят из отдельных элементов. При этом можно считать, что сами строки являются элементами всего текста. Нажатие той или иной клавиши приме дат к изменению текста (добавлению и удалению символов, формированию новых строк, удалению старых и т. д.). Таким образом программа предусматривает некоторую иерархию объектов, находящихся во взаимной связи. Эта иерархия представлена на рис. 2.

Рис. 2. Иерархия объектов программы-редактора

Она фактически состоит из двух групп объектов: объектов, связанных с формированием текста, и объектов, связанных с обработкой нажатия тех или иных клавиш. Каждая из этих групп начинается одним исходным объектом (предком всex последующих). В качестве таких объектов выступают объекты "Связь элементов" - для первой группы - и "Операция" - для второй группы.

Объект "Связь элементов" включает в себя связь определенного элемента с предыдущим и последующим элементами. Объект "Структура" дополнительно определяет для каждого объекта его начальный и конечный элемент (для строки начальный и конечный элементы строки, для текста - начальная и конечная строки). Объект "Элемент строки" включает в себя строку символов, набранных при работе с редактором, или пробелов, если символы еще не набраны. Объект "('трока" объединяет в себе свойства структуры и элемента строки и предоставляет возможность работать со строкой (совокупностью элементов строки) как единым целым. Объект "Текст" позволяет работать с совокупностью всех строк. Здесь же определяются общие параметры текста, как, например, координаты курсора в тексте, координаты начала выводимой на экран информации и т. д.

Вторая группа начинается объектом "Операция", включающим в себя общие действия по обработке нажатия любой клавиши (или комбинации клавиш). Далее идут объекты (группы объектов) обработки кодов тех или иных клавиш. В дли ном примере рассмотрены лишь объекты обработки кодов клавиш, формирующих изображаемые символы (символы с кодом больше 31), клавиш направления (Up, Dn, Left, Right), клавиши формирования новой строки (Enter) и клавиши удаления символа или объединения строк (BasckSpace). Количество объектов обработки кодов клавиш можно в принципе увеличивать.

В этой иерархии предшествующие объекты "порождают" последующие и передают им часть своих свойств. Например, объект "Структура" включает в себя свойства объекта "Связь элементов", т. к. несет информацию и о связи конкретных элементов структуры с предыдущими и последующими элементами.





 У Вас есть материал пишите нам
 
    Copyright © 2008    
  Top.Mail.Ru