Пролог
Предисловие
Введение
Синдром 2000-го года (Y2K)
Контекст и композиция
Слово о проверенных исключениях
Концепция шаблона
Что такое шаблон?
Таксономия шаблона
Принципы дизайна
Классификация шаблонов
Требования к разработке
Тестирование модулей
Расположение тестового кода
Упрощение идиом
Посыльный (Messenger)
Сборщик параметров
Количество объектов
Синглетон (Singleton)
Упражнения
Пул объекторв
Разделение объекторв
Proxy: выдвижение вперед другого объекта
PoolManager с использованием Proxy
Динамические прокси
Состояние (State): изменение поведения объектов
Итераторы: отделение алгоритмов от контейнеров
Итераторы с проверкой типа
Выделение общности
Стратегия: выбор алгоритма во время выполнения
Политика: обобщенная стратения
Шаблонный метод
Инкапсуляция создания
Метод простейшей фабрики
Полиморфные фабрики
Абстрактная фабрика
Специализированное создание
Прототип
Строитель
Упражнение
Слишком много
Плавающий вес: слишком много объектов
Декоратор: слишком много классов
Основная структура декоратора
Кофейный пример
Класс для каждой комбинации
Подход с использованием декоратора
Компромис
Другие соображения
Соединения различных типов
Адаптер
Мост
Гибкая структура
Композит
Разделение системы
Наблюдатель
Наблюдение за цветами
Визуальный пример наблюдателей
Посредник
Снижение сложности интерфейса
Facade
Пакет, как вариация Facade
Алгоритмическое расчленение
Команда: выбор операции во время выполнения
Цепочка откликов
Воплощение объекта состояния
Напоминание
Сложное взаимодействие
Множественная диспетчеризация
Визитер, вариант множественное диспетчеризации
Умножение языков
Мотивация интерпретатора
Обзор Python
Встроенные контейнеры
Функции
Строки
Классы
Создание языка
Управление интерпретатором
Передача данных
Получение данных
Множественные интерпретаторы
Контролирование Java из Jython
Внутренние классы
Использование библиотек Java
Наследование от библиотечных классов Java
Создание Java классов в Jython
Построение Java из кода Python
Java-Python Extension (JPE)
Выводы
Сложные состояния системы
Машина состояний
Машина стостояний, управляемая таблицей
Класс состояния
Условие перехода
Действие перехода
Таблица
Основная машина
Простая подающая машина
Тестирование машины
Инструменты
Код, управляемый таблицей: гибкость конфигурации
Управляемый таблицей код, с использованием анонимных внутренних классов
Переработка шаблонов
Симулятор переработки мусора
Улучшение дизайна
"Создание большего количества объектов
Шаблон прототипного создания
Подклассы Мусора
Разбор Мусора из внешнего файла
Переработка с прототипами
Абстрагирование использования
Реализация двойной диспетчеризации
Шаблон Посетителя
Рефлексивный Декоратор
Больше связности?
RTTI относительно полезно?
Заключение
Проекты
Крысы и лабиринты
Другие ресурсы относительно лабиринтов
XML Декоратор
Расширение Ant
Утилиты для массива