Конспект лекций
Санкт-Петербург
1. Появление ООП: необходимость соответствия структуры программы проблемному содержанию задачи и необходимость обеспечения эффективных технологий работы программиста и пользователя.
Появление и основные идеи ООП
1. Разделение работы между программистами:
- разработка типов данн6ых (классов)
- использование этих типов
2. Необходимость в трансформируемых типах данных
Потребности теории и практики программирования
Пример1:
Задача по обработке списков
Сущности: элемент списка, список
Схема описания сущностей:
1. Элемент списка:
- тип проблемной части
- значение проблемной части
- связь
- действия с элементом
2. Список:
- вход
- действия со списком
Вывод: используется для представления проблемных сущностей абстрактным типом.
Проблемная сущность - Абстрактный тип данных (АПД) – класс.
Фактор1. Необходимость наличия конструкций, которые бы представляли проблемные сущности задачи и которые содержат в себе данные и действия.
Пример2:
Двунаправленный список
Если мы не хотим переписывать уже имеющийся однонаправленный список?
Фактор 2. Дополнение существующих типов новыми свойствами (данными и действиями) с целью образования нового типа, т.е. преобразование существующего типа в новый тип. Преобразование состоит в дополнении.
Пример3: необходимо сделать переменным тип проблемной части списка.
Вывод. Необходимо сделать переменным тип проблемной части.
Выход1: Программу написать в терминах обобщенного типа, а при реализации конкретных списков подставить вместо обобщенного типа конкретный.
|
2. Появление ООП: необходимость в трансформируемых типах данных.
Фактор 3. Необходимость в преобразуемых типах данных, осуществляемых конкретизацией некоторого обобщенного типа.
Ф1. Реализуется классом
Ф2. Реализуется наследованием
Ф3. Реализуется шаблонами классов (не относится к ООП, это модель обобщенного программирования)
Наследование и шаблоны – повторное использование
Фактор 4. Необходимость повторного использования разрабатываемых типов данных.
Фактор 5. Необходимость разделения труда программистов по разработке и использованию классов.
Фактор 6. Необходимость в наличии автоматизированных инструментальных сред, которые позволяют эффективно разрабатывать, использовать классы.
3. Появление ООП: необходимость обеспечения распределения вычислений в пространстве и во времени. Основные идеи ООП.
Развитие средств ВТ
Современная ВТ характеризуется распределением вычислительного процесса во времени и пространстве (сетевой подход)
Как координировать распределение во времени и распределение в пространстве?
Выход: части (сущности) программы должны обмениваться сообщениями.
Фактор 7. Необходимо обеспечить распределения вычислений во времени и пространстве за счет обмена сообщениями.
Обеспечение эффективной работы пользователя
Фактор 8. необходимость в автоматических инструментальных средствах, которые позволяют наглядно разработать программы.
Вывод: структура программы должна быть построена так, чтобы можно было сделать такие среды разработки.
|
Основные идеи ООП
1. Основной сущностью программы является объект, который наделен состоянием и поведением.
2. Исполнение программы есть взаимодействие объектов. Сама программа представляет собой описание взаимодействия.
Основные модели ООП и их реализация на языке С++
1. С++ позволяет реализовать все модели ООП
2. С++ позволяет создать свою технологию ООП
3. С++ поддерживается ведущими фирмами-производителями.
4. С++ хорошо обеспечен литературой.
Задание 1: составить аннотированный перечень Интернет-источников, посвященных стандарту С++ и методам эффективного использования языка при реализации модели ООП.
4. Концептуальная модель объекта