Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Методология объектно-ориентированного программирования



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

Изменились также и методы использования компьютеров. Распространение персональных компьютеров привело к приоритету задач обработки и хранения данных над чисто вычислительными проблемами. Методы процедурного программирования неэффективны при росте сложности программ и при повышении их надежности. К исходу 1980-х годов для решения этих проблем было создано объектно-ориентированное программирование (ООП).

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

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

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

Включение в языки С и Pascal классов привело к появлению соответственно C++ и Object Pascal - на сегодня наиболее распространенных языков разработки приложений. Их распространению способствовал выбор языка C++ как базового для инструментария MS Visual C++, а Object Pascal - для средства разработки приложений Borland/Inprise Delphi. Оба средства стали мощными системами разработки программ; их библиотеки стандартных классов включают сотни различных свойств и методов. В среде MS Visual C++ 5/6 такая библиотека называется MFC (Microsoft Foundation Classes, основные классы Microsoft). На рис. 4.1.1. из документации приведен фрагмент иерархии классов MFC. Аналогичная иерархическая библиотека в среде Borland/Inprise Delphi называется VCL (Visual Component Library, библиотека визуальных компонент) – рис. 4.1.2.

Рис. 4.1.1. Часть иерархии классов MFC.

Рис. 4.1.3. Часть иерархии классов VCL.

Инкапсуляция означаетсокрытие отдельных деталей внутреннего устройства классов от пользователей и внешних по отношению к нему объектов. Знание особенностей реализации методов класса не нужно для их использования извне и, как правило, недоступно для пользователя. Ряд членов (полей и методов) класса может быть невидим за его пределами; вводятся разные зоны видимости для членов класса.

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

В интерфейсе дана информация, нужная для взаимодействия с другими объектами, а реализация скрывает от других объектов детали, не относящиеся к процессу взаимодействия объектов (рис. 4.1.3.).

Рис. 4.1.3.Сокрытие внутренних деталей реализации методов классов.

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

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

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

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

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

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





Дата публикования: 2014-10-25; Прочитано: 1251 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...