Содержание
- 2. План курса Вводная лекция. Основные понятия OOA/D/P. C++ - язык ООП UML – язык OOA/OOD OOA
- 3. Литература Общее понимание ООП и OOD: Гради Буч - Объектно-ориентированный анализ и проектирование с примерами приложений
- 4. Почему это важно? Объектно-ориентированная технология - основной метод промышленной разработки программного обеспечения
- 5. Что такое программа? Ваши версии?
- 6. Что такое программа? ISO/IEC/IEEE 24765:2010 комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять
- 7. Парадигмы программирования (сильно упрощая) Парадигма — это совокупность идей и понятий, которые мы используем для описания
- 8. ОО-парадигма Ключевые идеи: Программа - это совокупность объектов, способных взаимодействовать друг с другом посредством сообщений; Каждый
- 9. Steve Jobs, 1994, в интерью журналу Rolling Stone: Не могли бы вы в нескольких словах объяснить,
- 10. Вопросы? Дальше – углубимся в базовые понятия ОО-подхода
- 11. Объекты и классы Определение Г. Буча: объект – это некая сущность в нашей модели, обладающая: Состоянием
- 12. Объектный подход
- 13. ООА - пример Постановка задачи (л/р №1): Динамическая структура—очередь. В списке хранится информация о событиях: день
- 14. OOD - пример Класс Событие Поля для данных Указатель на следующий элемент очереди Конструктор для создания
- 15. OOP - пример class Event { int day, month, year; char* name; Event* next; public: Event(int
- 16. Предпосылки ОО подхода Сложность – неотъемлемая часть ПО История роста сложности: машинные коды математика алгоритмы интерактивные
- 17. Борьба со сложностью при проектировании ПО Абстракция – концентрация на существенных деталях, отбрасывая несущественные Декомпозиция –
- 18. Вопросы? Дальше – рассмотрим элементы ОО-подхода
- 19. Элементы объектного подхода Основные элементы: Абстрагирование; Инкапсуляция; Модульность; Иерархия. Дополнительные элементы: Типизация; Полиморфизм; Параллелизм; Персистентность (сохраняемость).
- 20. Абстракция. Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким
- 21. Абстракция. Виды абстракций:
- 22. Абстракция - пример Тема разрабатываемой системы По традиции – компьютерная игра ☺. Например, платформер. Наша предметная
- 23. Инкапсуляция Инкапсуляция - это процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение:
- 24. Инкапсуляция - пример Та же модель, рассмотрим Персонажа Что может делать объект (интерфейс): Идти Прыгать А
- 25. Модульность Модульность - это свойство системы, которая была разложена на внутренне связные, но слабо связанные между
- 26. Модульность - пример Та же модель игры Группируем классы Модуль с классами модели игры Модуль с
- 27. Иерархия Иерархия - это упорядочение абстракций, расположение их по уровням. Основными видами иерархических структур применительно к
- 28. Иерархия – пример композиции/агрегации Снова модель игр, но чуть посложнее Группа юнитов – агрегация объектов Управляем
- 29. Иерархия – пример наследования Возвращаемся к модели платформера Игровой персонаж и враги много общего Свойства –
- 30. Типизация Типизация - это способ защититься от использования объектов одного класса вместо другого, или, по крайней
- 31. Типизация - пример Та же игровая модель От класса NPC порождаем 2 производных подкласса Лучник –
- 32. Типизация и наследование Продолжаем работать с той же моделью Классы Лучник и Мечник унаследовали от предка
- 33. Типизация и наследование Т.к. поведение и структура, определенные суперклассом, наследуются всеми потомками, значит у любого потомка
- 34. Типизация и наследование Итак, смоделировать отряд можно как массив объектов типа NPC Каждый из этих объектов
- 35. Полиморфизм Полиморфизм – обеспечение множественности вариантов реализации однотипного поведения различными классами-потомками общего предка. Т.е. все потомки
- 36. Полиморфизм - пример Научим наш отряд драться вместе Добавим в иерархию класс БоевойNPC между классами NPC
- 37. Полиморфизм - пример Переопределим Отряд как как массив объектов типа БоевойNPC Алгоритм атаки отряда: ТекущийБоевойNPC =
- 38. Параллелизм Параллелизм - это свойство, отличающее активные объекты от пассивных. В ООA/D/P каждый объект (как абстракция
- 39. Параллелизм - пример Распределенные и многопоточные системы – истинный параллелизм Наша любимая предметная область – игры:
- 40. Персистентность Персистентность(сохраняемость) - способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве,
- 41. Персистентность - пример Та же предметная область Реализуем сохранение и загрузку состояния игрового мира и персонажей
- 43. Скачать презентацию