26
Парадигма объектно- ориентированного программирования. Виталий Унгурян [email protected]

Парадигма ООП

Embed Size (px)

Citation preview

Page 1: Парадигма ООП

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

Виталий Унгурян [email protected]

Page 2: Парадигма ООП

Высказывания великих

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

исключительно плохая идея, которую могли придумать только в

Калифорнии.”Эдсгер Дейкстр

один из основателей концепции структурного программирования

Page 3: Парадигма ООП

Парадигма

Паради́гма (от греч. παράδειγμα, «пример, модель, образец») — то система идей, взглядов и понятий, различных моделей решения множества проблем, принятых, как привило, в научном сообществе и являющихся основной методологической базой для всего мирового научного сообщества.

Page 4: Парадигма ООП

Парадигма

В соответствии с концепцией фон-Неймана – основателя теоретической концепции компьютерной техники, процессор обрабатывает данные, выполняя инструкции (команды), которые находятся в той же оперативной памяти, что и данные.

Page 5: Парадигма ООП

Парадигма

Можно выделить две основные сущности процесса обработки информации: код, как совокупность инструкций, и данные.

Все программыв соответствии с выбранной технологией программирования концептуально организованы вокруг своего кода или вокруг своих данных.

Page 6: Парадигма ООП

Императивное программирование

Императивное программированиепрограммы = инструкции + данные. Первыми императивными языками были машинные инструкции (коды) — команды, готовые к исполнению компьютеромПримеры функциональных языков: Ассемблер

Page 7: Парадигма ООП

Структурное программирование

При структурном подходе любая программа строится без использования оператора безусловного перехода из трёх базовых управляющих структур: последовательность, ветвление, цикл;

Page 8: Парадигма ООП

Структурное программирование

Page 9: Парадигма ООП

Процедурное программирование

Процедурное программирование программы = данные + алгоритмы.

Разбиение задач на более мелкие.

Page 10: Парадигма ООП

Модульное программирование

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

программы = модули + данные.

Page 11: Парадигма ООП

Функциональное программирование

программы = функции + функции.

Примеры функциональных языков: Lisp, Haskel, Scala

Page 12: Парадигма ООП

ООП

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

Page 13: Парадигма ООП

Парадигма ООП

ООП рассматривает программу как совокупность фрагментов кода, обрабатывающих отдельные совокупности данных – объекты.

Page 14: Парадигма ООП

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

Парадигма ООП

Page 15: Парадигма ООП

Парадигма ООП

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

Page 16: Парадигма ООП

Парадигма ООП

Интерфейс класса – это открытая часть класса доступная для

использования извне.

Закрытая часть класса, называется реализацией.

Page 17: Парадигма ООП

Абстракция

Центральной идеей ООП, которая связвает красной нитью все три приципа ООП является

реализация понятия "абстракция".

Page 18: Парадигма ООП

Абстракция

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

Page 19: Парадигма ООП

Абстрагирование

Page 20: Парадигма ООП

Абстрагирование

Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая из рассмотрения не значимые

Соответственно, абстракция — это набор всех таких характеристик.

Page 21: Парадигма ООП

Абстракция

Одним из основных способов создания абстракции является использованиеконцепции иерархической классификации.

Ее суть заключается в том, чтосложные системы разбиваются на более простые фрагменты.

Page 22: Парадигма ООП

Степень абстракции

Очень важно выбрать правильную степень

абстракции.

Page 23: Парадигма ООП

Степень абстракции

Слишком высокая степень даст только приблизительное описание объекта, не позволит правильно моделировать его поведение.

Page 24: Парадигма ООП

Степень абстракции

Слишком низкая степень абстракции сделает модель очень сложной, перегруженной деталями, и потому непригодной.

Page 25: Парадигма ООП

Три основные парадигмы

Page 26: Парадигма ООП