Содержание
Введение
1. Объектно-ориентированное мышление
1. Почему ООП так популярно?
2. Язык и мышление
Эскимосы и снег • Пример из области программирования • Принцип Чёрча и
гипотеза Ворфа
3. Новая парадигма
4. Способ видения мира
Агенты, обязанности, сообщения и методы • Обязанности и ответственности •
Классы и экземпляры • Иерархии классов и наследование • Связывание и
переопределение методов • Краткое изложение принципов
5. Вычисление и моделирование
Сила метафор • Как избежать бесконечной регрессии
6. Барьер сложности Нелинейное увеличение сложности • Механизмы
абстрагирования
7. Многократно используемое программное обеспечение
8. Резюме
Что читать дальше
Упражнения
2. Объектно-ориентированное проектирование
1. Ответственность подразумевает невмешательство
2. Программирование «в малом» и «в большом»
3. Почему надо начинать с функционирования?
4. Учебный пример: проектирование на основе обязанностей
Интерактивный разумный кухонный помощник • Работа по сценарию •
Идентификация компонент
5. CRC-карточка — способ записи обязанностей
Дайте компонентам физический образ • Цикл «что/кто» • Документирование
6. Компоненты и поведение
Отложенные решения • Готовность к изменениям • Продолжение работы со
сценарием • Диаграммы взаимодействия
7.
Компоненты программы
Поведение и состояние • Экземпляры и классы • Зацепление и связность •
Интерфейс и реализация модуля — принципы Парнаса
8. Формализация интерфейса
Выбор имен
9. Выбор представления данных
10. Реализация компонент
11. Интеграция компонент
12. Сопровождение и развитие
Упражнения
3. Классы и методы
1. Инкапсуляция
2. Разновидности классов
3. Пример: игра в карты
4. Интерфейс и реализация
5. Классы и методы в ООП
Классы и методы в языке Object Pascal • Классы и методы в языке Smalltalk •
Классы и методы в языке Objective-C • Классы и методы в языке C++ • Классы и
методы в языке Java
Упражнения
4. Сообщения, экземпляры и инициализация
1. Синтаксис пересылки сообщений
Синтаксис пересылки сообщений в Object Pascal • Синтаксис пересылки
сообщений в C++ • Синтаксис пересылки сообщений в Java • Синтаксис
пересылки сообщений в Smalltalk • Синтаксис пересылки сообщений в Objective-C
2. Механизмы создания и инициализации
Создание и инициализация в C++ • Создание и инициализация в Java • Создание
и инициализация в Objective-C • Создание и инициализация в Object Pascal •
Создание и инициализация в Smalltalk
Упражнения
5.