Разделы

  Java, JavaScript
  Документация Perl
  Новости
  Документация ASP
  Flash
  Интернет протоколы
  Apache
  Уроки программирования
  Язык программирования C

Объектно-ориентированный подход к созданию программных средств

Уроки программирования
4.6 / 5 (89 оценок)

Основные понятия и концепции объектно-ориентированного подхода



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

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

Если при традиционном (функциональном) программировании программа рассматривается и проектируется как набор процедур, каждая из которых выполняет определенные действия, то ОО методология предусматривает совершенно другой подход, при котором прежде всего следует искать ответы на такие вопросы: какой набор данных характеризует состояние того или иного объекта; как этот объект должен реагировать на то или иное обращение к нему; что общего между объектами, т.е. как их можно сгруппировать или как их можно объединить; как объекты должны взаимодействовать с пользователем ; запросы могут быть направлены объектам?

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

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

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

На этапе программирования, объектно-ориентированный проект реализуется в виде программного кода. Для этого могут быть использованы различные инструментальные средства. Но любая «хорошая программа» обязательно должна иметь такие очевидные свойства:
• потребовать минимальных затрат на перепрограммирование, при внесении дополнительных возможностей или модифицировании существующих;
• допускать повторное использование своего кода для разработки других программ.
Именно для решения этих задач используются объектно-ориентированные языки программирования, характерными особенностями которых является инкапсуляция, полиморфизм и наследование.

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

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

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

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

Если потомство является наследником нескольких базовых классов, то есть имеет более одного непосредственного предка, наследование называется множественным. При обычном (не множественного) наследования производный класс наследует свойства и поведение лишь одного базового класса (имеет только одного предка).

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

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

Объектные модели программных продуктов фирмы Microsoft



Большинство хорошо известных программных продуктов фирмы Microsoft, как Word, Excel, Access и Internet Explorer, состоят из объектов, которые доступны любым другим внешним программам через механизм OLE Automation.

Так, в пакете программ MS Office насчитывается несколько сотен унифицированных классов объектов, представленных в виде нескольких библиотек. Есть библиотеки с общими для всех программ объектами (классами). Таких объектов в MS Office более 50%. Кроме того, каждая программа MS Office имеет свою собственную библиотеку классов.

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

В результате каждая программа может быть представлена ​​в виде объектной модели. С ее помощью можно определить, интерфейсы каких компонентов могут быть использованы программистами в их программах и как эти компоненты соотносятся друг с другом.
Фрагменты верхнего уровня объектных моделей программ Word, Excel, Access и Internet Explorer приведены в приложениях 1-4. В моделях этих программ объекты располагаются в определенной иерархической последовательности согласно отношением типа «состоит из». Так, рабочие книги (Workbooks) входят в состав программы Excel, а рабочие листы (Worksheets) - в состав рабочей книги.

Анализируя структуру объектных моделей программ фирмы Microsoft, можно отметить следующее:
• для большинства программ (Excel, Word, PowerPoint, Access, Outlook) корневым объектом является объект Application. Для Internet Explorer - это объект Window;
• среди объектов, вложенных в объект Application, основные, которые задают специфику программы. Это такие объекты, как объект Workbook (рабочая книга Excel), объект Document (документ Word), объект Presentation (презентация PowerPoint), объект Report (отчет Access);

• есть объекты (CommabdBars, Dialogs, Windows, Assistant, FileSearch, VBE), входящие в объектные модели почти всех приложений пакета MS Office. Такие объекты хранятся в библиотеке Office и присоединяются к собственным библиотек каждого документа. Общие объекты определяют свойства документов, необходимых для работы с инструментальными линейками, меню, элементами управления, стандартными диалогами и т.д., создавая таким образом одинаковый интерфейс документов в среде Office;

• объектная модель Outlook значительно отличается от моделей всех других приложений. Суть в том, что объектная модель этого применение не является фиксированной и может неограниченно расширяться по мере того, как в Outlook добавляются папки и подпапки.

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

Состав объектов соответствующей офисной программы можно просмотреть в окне просмотра объектов Редактора VBE (Visual Basic Editor) командой View / Object Browser. В окне просмотра объектов можно выбрать библиотеку и просмотреть ее состав. Окно просмотра объектов используется для поиска нужного элемента, просмотра его свойств, методов и событий, получение справки по любым элементом, а также для вставки элемента в модуль.

Во всех офисных приложениях объектом верхнего уровня, представляющая саму программу, есть объект с именем Application, а в Internet Explorer - объект с именем Window.

Следует еще раз обратить внимание на то, что способом построения объектов высшего уровня встраивания в них объектов низкого уровня. Если в некоторый объект Х вложено объект Y, говорят, что у объекта Х есть свойство Y, и обозначение Х.Y означает обращение к объекту Y. Объект Y может быть очень сложным и в него могут быть встроены другие объекты. Эта цепочка вложенности продолжается до терминальных (низкого уровня) объектов и для того, чтобы обратиться к методу или свойства какого объекта в этой цепочке, необходимо, как правило, указать все предыдущие уровни. Например:
Application.ActiveWorkbook.Worksheets! [Лист1].Range ("A1").Value = 10.

В этом примере свойства Value клетке А1 рабочего листа с именем Лист 1 активной книги программы Excel присваивается значение 10.
Если бы при каждом обращении к объекту нужно было вручную набирать имена всех предыдущих, это было бы значительным недостатком. Но технология интеллектуальной поддержки, используемая в Visual Basic, позволяющий автоматизировать этот процесс. Как только после имени объекта ставится точка, раскрывается список с перечнем всех свойств этого объекта. Остается лишь выбрать нужную, нажать клавишу Пробел, поставить точку и продолжить этот процесс. Если после ввода точки список не раскрывается, то это означает, что была допущена ошибка. Кроме того, в некоторых случаях часть уровней можно опускать. Так, приведенную выше команду можно записать проще:
Worksheets! [Лист 1].Range ("A1") = 10.

Элементы большинства классов можно объединять в упорядоченную совокупность, получая таким образом новый класс - коллекцию (семью), который позволяет организовывать динамическую структуру данных. Значительное количество объектов в офисных программах есть коллекциями. Например, рабочая книга Workbook в Excel состоит из листов Sheet, набор которых образует класс-коллекцию Sheets. Последний представляет собой коллекцию листов двух типов: коллекцию рабочих листов Worksheets и коллекцию диаграмм Charts. То есть лист может быть объектом одного из двух классов: Worksheet или Chart.

Для ссылки на объект внутри коллекции можно применять три способа:
• Имя коллекции! [Имя объекта]. Этот метод использовался в вышеприведенных примерах.
• Имя коллекции («Имя объекта»). Например:
Worksheets («Лист1»).Range ("A1").Value = 10.
• Имя коллекции (Относительный номер объекта), где Относительный номер объекта - это целочисленная константа или переменная. Например:
Worksheets (1).Range ("А1").Value = 10.
При этом следует иметь в виду, что в некоторых коллекциях нумерация объектов начинается с нуля (в семье Worksheets - с единицы).



Другие материалы по теме:

- Средства доступа к базам данных
- Технология intranet
- Понятие языка программирования
- Построение алгоритмов
- Типы алгоритмов


📌 smti.ru © 2026 SMTI.RU: инструменты, знания и сообщество для создания веб-проектов | Обратная связь