|
Программирование >> Разработка пользовательского интерфейса
Глава 5 Объектно-ориентированное программирование 5.1. Объектная модель и ее свойства 5.2. Объекты и их свойства Объекты для работы с данными Объекты для управления работой приложения Объекты для оформления интерфейса пользователя Объекты-контейнеры Невизуальные объекты Объекты OLE 5.3. Управление событиями 5.4. Использование методов Программирование - не такое уж приятное занятие, как может показаться на первый взгляд. Регулярно программисты сталкиваются с двумя сильно действующими на нервы событиями: они то часами мучаются в раздумьях, как запрограммировать то или иное функциональное решение, то их одолевает ужасная скука при многократной реализации давно отработанных решений. Способ борьбы с этими неприятностями называется объектно-ориентированное программирование (ООП). По разным причинам ООП , как неотъемлемая часть современных систем RAD, не сразу стала достоянием широкого круга программистов, долгое время оставаясь уделом профессионалов, пишущих на языках, подобных С+ + . Среди рассматриваемых в данной книге средств разработки наиболее развитые средства ООП имеет СУБД Visual FoxPro. Нисколько не сомневаясь, что остальные средства разработки будут двигаться в этом направлении, при изложении основ ООП мы будем ориентироваться именно на эту модель. 5.1. Объектная модель и ее свойства При структурном программировании, речь о котором шла в предыдущей главе, последовательно выполняются операторы, записываемые программистом в соответствии с логикой решения поставленной перед ним задачи. А теперь представьте интерфейс современной прикладной программы, что-нибудь типа Windows 95. Представили это многообразие окон, диалогов, задач? И все это то открывается, то закрывается, то перемещается, то изменяет цвет. Рискнем предположить, что такой интерфейс написать средствами стандартного структурного языка программирования просто невозможно. В этом параграфе вы узнаете: Основные сведения о принципах ООП. Термины и определения, используемые в ООП. Возможности объектной модели Visual FoxPro. Особенности использования объектов в Visual Basic. Объектно-ориентированное программирование делает акцент не на программные структуры, а на объекты. Почти все, что представляет для вас интерес и, возможно, даже не существует визуально, может быть объектом. Объектом может быть окно, поле для ввода данных, пользователь вашей программы, сама программа и т. д. Тогда любые действия мы можем привязать к этому объекту, а также описать, что должно случиться с ним при определенных действиях пользователя (например, при закрытии окна). Полезный, многократно используемый u - неопределенного типа uReturnValue Как вы могли заметить из примеров, после обозначения диапазона действия и типа данных, имя переменной для большей наглядности лучше начинать с большой буквы. Не ленитесь давать имени максимальную смысловую нагрузку. Это избавит вас от долгих раздумий: И что же это за переменная такая и зачем это она тут? Абстрактным типом данных называется такой тип данных, который описан программистом, но не поддерживается в используемом языке программирования. В языках программирования, которые не поддерживают ООП, таких как, например, стандартный С, абстрактный тип данных может быть создан из существующих типов данных. Хорошим примером такого подхода является использование структур. В языках, поддерживающих ООП, на понятии абстрактный тип данных основано описание классов, осуществляемое в программе на высоком уровне. В процессе работы программы это описание используется для создания объектов, выполняющих реальные функции. В Visual FoxPro такой тип данных поддерживается программно за счет использования команды DEFINE CLASS и визуально при использовании Конструктора классов (Class Designer). Объекты, созданные во время работы программы, доступны для управления посредством специальных переменных, которые служат в качестве указателей на эти объекты. Абстракцией называется метод, при использовании которого можно игнорировать не существенные в данный момент детали и функции программы для того, чтобы получить возможность сосредоточиться на интерфейсе программы, обмене сообщениями с пользователем т. д. Абстракция поддерживает идею черного ящика , когда часть или даже вся информация о поведении объекта может быть скрыта. Такой подход обеспечивает возможность использования в пользовательском приложении объектов с заранее определенными свойствами, функциональность которых не может опускаться ниже определенного уровня. В то же время возможно придание таким объектам дополнительных свойств и функций, изменение их внешнего вида и т. д. Классом называется шаблон, который описывает методы и свойства используемые для определенного типа объектов. На основании описания класса при работе программы создаются объекты, которые и обеспечивают выполнение заданных функций. Из описания одного класса может быть создано сколько угодно объектов. Такие объекты будут называться экземплярами одного класса. Описать класс программно можно с помощью команды DEFINE CLASS и визуально при использовании Конструктора классов. В Visual FoxPro классы делятся на визуальные и не визуальные. Визуальные классы служат прообразами объектов, которые будут видны и, соответственно, станут основой пользовательского интерфейса будущей программы. Не визуальные классы могут быть видны только в момент проектирования на их основе объектов, которые окажутся невидимыми при работе программы. Как правило, объекты, основанные на не визуальных классах, создаются и управляются программно, с помощью соответствующих команд и функций. Классы хранятся в файле библиотеки классов, что облегчает к ним доступ. Этот файл имеет расширение VCX и может содержать один или несколько классов. Объектом называется программно связанная коллекция методов (функций) и свойств, выполняющих одну функционально связанную задачу. объект можно сохранить в качестве типового и применять его в нескольких программах для обеспечения сходной функциональности. Таким образом, в ООП программист создает нужные объекты, а затем описывает действия с ними и их реакцию на действия пользователя. При таком подходе любую программу можно написать, включая туда тот или иной набор объектов, обеспечивающих выполнение тех или иных функций. Более детальное знакомство с принципами ООП начнем с терминологии, т. к. некоторые понятия здесь являются не только новыми, но и не такими простыми, как может показаться на первый взгляд. Свойство - это характеристика, с помощью которой описывается внешний вид и работа объекта. Например, заголовок, тип шрифта для его написания, вид линий и цвет в обрамляющей рамке, источник данных и т. д. Событие - это действие, которое связано с объектом. Событие может быть инициировано пользователем, вызвано программой или операционной системой. События являются основным инструментом для описания требуемой реакции объекта на действия пользователя. Все возможные события содержат по умолчанию заложенную в них реакцию, которую программист может изменить, записав в процедуру события определенный программный код. Эти процедуры могут быть защищены от дальнейших изменений или, наоборот, легко доступны для модификации пользователем. Некоторые действия в программе вызывают целую череду событий, происходящих в определенной последовательности. Например, загрузка экранной формы вызывает события, последовательность которых не может быть изменена. Метод - это функция или процедура, которая будет управлять работой объекта. Момент выполнение метода определяется исключительно программистом, т. к. метод вызывается только при его явном указании, например OBJECT.DRAW. Метод может быть защищен от дальнейшего изменения. Как в любую функцию, в него можно передать параметры и получить возвращаемое значение. Однако, ни метод, ни событие не могут иметь вложенных процедур. Стоит также учесть, что метод не может носить имя, совпадающее по названию со свойством. Иерархия классов - это древообразная структура классов, отображающая взаимосвязи между используемыми в приложении классами одного типа. Разобраться в понятии иерархия классов вам поможет рис. 5.1. Классы, находящиеся на более низких ступенях иерархии, называются подклассами. Любой из классов, находящихся в иерархии на рис. 5.1 ниже базового класса, будет подклассом. Классы, находящиеся на более высоких ступенях, на основании которых описаны ниже стоящие в иерархии классы, называются родительскими классами или суперклассами. Например, на рис. 5.1 базовый класс разработчика будет родительским по отношению к классу кнопок для панели инструментов. На основании одного родительского класса может быть создано сколько угодно подклассов следующего уровня. Такие подклассы называются экземплярами данного класса. На рис. 5.1 такими экземплярами будут классы для выполнения определенных действий, созданные на основе родительского класса графических кнопок. - I БааоЕый кгасс кнопки улраапэния J Базовый клсс кнопок управления piaSp50T4HKa I Класс графических кнопок -Кла:;с кнопок для отмены - -51 Класс кнопок для выуо-да - * Класс 10 юпок для печати --I Класс кнпппк для панели инструментов Рис. 5.1. Например, объект - окно для вывода данных - обладает набором свойств, описывающих его внешний вид, и набором методов для управления его поведением на экране. Программно объект может быть создан с помощью функции CREATEOBJECT().
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |