Глава 1

Принципы

объектно-ориентированного
визуального
программирования

1.1 Объектно-ориентированное
программирование

Объектно-ориентированное программирование (сокращенно ООП) и порож-
денное им объектно-ориентированное проектирование — это совершенно новый
подход к построению сложных (и не очень сложных) программ и систем. Этот под-
ход зародился в таких языках программирования, как Ада, Smalltalk, C++, Bor-
land Pascal. До появления ООП господствовало процедурное программирование.
Тогда основой программ были функции и процедуры, т.е. действия. Разработчик
определял, какие действия, какие функции нужны ему для решения поставленной
задачи, реализовывал эти функции и объединял их в программу. Программа обыч-
но имела достаточно четкий алгоритм работы — последовательность операций, на-
чинающуюся в какой-то точке и заканчивающуюся в одной или множестве других
точек.

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

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

РИС 1 1                                                                                     Программа

Взаимодействие между объектами в программе и              J[    J|
пользователем                                          ^      ^.^      ^.

————\   /————

Сообщения      Объекты

tj[
^       ^    ^

\ ^ I     ^