Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Приемы объектно-ориентированного проектирования...doc
Скачиваний:
24
Добавлен:
14.08.2019
Размер:
5.43 Mб
Скачать

Глава 2. Проектирование редактора документов 39

2.1. Задачи проектирования 39

2.2. Структура документа 41

Рекурсивная композиция 41

Глифы 43

Паттерн компоновщик 44

2.3. Форматирование 45

Инкапсуляция алгоритма форматирования 45

Классы Compositor и Composition 46

Стратегия 47

2.4. Оформление пользовательского интерфейса 47

Прозрачное обрамление 48

Моноглиф 48

Паттерн декоратор 50

2.5. Поддержка нескольких стандартов внешнего облика 51

Абстрагирование создания объекта 51

Фабрики и изготовленные классы 52

Паттерн абстрактная фабрика 54

2.6. Поддержка нескольких оконных систем 54

Можно ли воспользоваться абстрактной фабрикой? 54

Инкапсуляция зависимостей от реализации 54

Классы Window и WindowImp 56

Подклассы WindowImp 57

Конфигурирование класса Window с помощью WindowImp 58

Паттерн мост 59

2.7. Операции пользователя 60

Инкапсуляция запроса 60

Класс Command и его подклассы 61

Отмена операций 62

История команд 62

Паттерн команда 63

2.8. Проверка правописания и расстановка переносов 64

Доступ к распределенной информации 64

Инкапсуляция доступа и порядка обхода 64

Класс Iterator и его подклассы 65

Паттерн итератор 68

Обход, и действия выполняемые при обходе 68

Класс Visitor и его подклассы 71

Паттерн посетитель 72

2.9. Резюме 73

Глава 3. Порождающие паттерны 75

Паттерн Abstract Factory 77

Паттерн Builder 83

Паттерн Factory Method 89

Паттерн Prototype 96

Паттерн Singleton 102

Обсуждение порождающих паттернов 107

Глава 4. Структурные паттерны 109

Паттерн Adapter 110

Паттерн Bridge 119

Паттерн Composite 127

Паттерн Decorator 136

Паттерн Facade 144

Паттерн Flyweight 151

Паттерн Proxy 161

Обсуждение структурных паттернов 169

Адаптер и мост 169

Компоновщик, декоратор и заместитель 170

Глава 5. Паттерны поведения 173

Паттерн Chain of Responsibility 173

Паттерн Command 181

Паттерн Interpreter 189

Паттерн Iterator 200

Паттерн Mediator 211

Паттерн Memento 219

Паттерн Observer 226

Паттерн State 235

Паттерн Strategy 242

Паттерн Template Method 250

Паттерн Visitor 254

Обсуждение паттернов поведения 266

Инкапсуляция вариаций 266

Объекты как аргументы 267

Должен ли обмен информацией быть инкапсулированным или распределенным 267

Разделение получателей и отправителей 268

Резюме 269

Глава 6. Заключение 271

6.1. Чего ожидать от паттернов проектирования 271

Единый словарь проектирования 271

Помощь при документировании и изучении 272

Дополнение существующих методов 272

Цель реорганизации 272

6.2. Краткая история 273

6.3. Проектировщики паттернов 274

Языки паттернов Александра 274

Паттерны в программном обеспечении 275

6.4. Приглашение 276

6.5. На прощание 276

Приложение А. Глоссарий 278

Приложение В. Объяснение нотации 281

В.1. Диаграмма классов 281

В.2. Диаграмма объектов 282

В.3. Диаграмма взаимодействий 283

Приложение С. Базовые классы 284

C.1. List 284

С.2. Iterator 287

С.З. ListIterator 287

С.4. Point 287

С.5. Rect 288

Библиография 290

Алфавитный указатель 295