Предисловие

Глава 1. Введение в паттерны проектирования
1.1. Что такое паттерн проектирования
1.2. Паттерны проектирования в схеме MVC в языке Smalltalk
1.3. Описание паттернов проектирования
1.4. Каталог паттернов проектирования
1.5. Организация каталога
1.6. Как решать задачи проектирования с помощью паттернов
Поиск подходящих объектов
Определение степени детализации объекта
Специфицирование интерфейсов объекта
Специфицирование реализации объектов
Механизмы повторного использования
Сравнение структур времени выполнения и времени компиляции
Проектирование с учетом будущих изменений
1.7. Как выбирать паттерн проектирования
1.8. Как пользоваться паттерном проектирования

Глава 2. Проектирование редактора документов
2.1. Задачи проектирования
2.2. Структура документа
Рекурсивная композиция
Глифы
Паттерн компоновщик
2.3. Форматирование
Инкапсуляция алгоритма форматирования
Классы Compositor и Composition
Стратегия
2.4. Оформление пользовательского интерфейса
Прозрачное обрамление
Моноглиф
Паттерн декоратор
2.5. Поддержка нескольких стандартов внешнего облика
Абстрагирование создания объекта
Фабрики и изготовленные классы
Паттерн абстрактная фабрика
2.6. Поддержке нескольких оконных систем
Можно ли воспользоваться абстрактной фабрикой?
Инкапсуляция зависимостей от реализации
Классы Window и Windowlrnp
Подклассы Windowlrnp
Конфигурирование класса Window с помощью Windowlrnp
Паттерн мост
2.7. Операции пользователя
Инкапсуляция запроса
Класс Command и его подклассы
Отмена операций
История команд
Паттерн команда
2.8. Проверка правописания и расстановка переносов
Доступ к распределенной информации
Инкапсуляция доступа и порядка обхода
Класс Iterator и его подклассы
Паттерн итератор
Обход и действия, выполняемые при обходе
Класс Visitor и его подклассы
Паттерн посетитель
2.9. Резюме

Глава 3. Порождающие паттерны
Паттерн Abstract Factory
Паттерн Builder
Паттерн Factory Method
Паттерн Prototype
Паттерн Singleton
Обсуждение порождающих паттернов

Глава 4. Структурные паттерны
Паттерн Adapter
Паттерн Bridge
Паттерн Composite
Паттерн Decorator
Паттерн Facade
Паттерн Flyweight
Паттерн Proxy
Обсуждение структурных паттернов
Адаптер и мост
Компоновщик, декоратор и заместитель

Глава 5. Паттерны поведения
Паттерн Chain of Responsibility
Паттерн Command
Паттерн Interpreter
Паттерн Iterator
Паттерн Mediator
Паттерн Memento
Паттерн Observer
Паттерн State
Паттерн Strategy
Паттерн Template Method
Паттерн Visitor
Обсуждение паттернов поведения
Инкапсуляция вариаций
Объекты как аргументы
Должен ли обмен информацией быть инкапсулированным или распределенным
Разделение получателей и отправителей
Резюме

Глава 6. Заключение
6.1. Чего ожидать от паттернов проектирования
Единый словарь проектирования
Помощь при документировании и изучении
Дополнение, существующих методов
Цель реорганизации
6.2. Краткая история
6.3. Проектировщики паттернов
Языки паттернов Александра
Паттерны в программном обеспечении
6.4. Приглашение
6.5. На прощание

Приложение А. Глоссарий
Приложение В. Объяснение нотации
B.1. Диаграмма классов
В.2. Диаграмма объектов
В.3. Диаграмма взаимодействий
Приложение С. Базовые классы
C.1. List
С.2. Iterator
С.З. Listlterator
С.4. Point
C.5. Rect
Библиография
Алфавитный указатель