Название: Паттерны проектирования - Приемы объектно - ориентированного проектирования.
Автор: Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д.
2001.
В книге авторов описаны несложные решения задач, которые появляются при объектно-ориентированном проектировании. Некоторые программисты хотели найти способы повышения гибкости и степени повторного использования своих программ, что дало начало паттернам. Изложенные примеры написаны в легкой и доступной практике форме. Писателями пояснены правила использования паттернов проектирования и приведен их каталог. Программист сможет разработать приложение, применяя паттерны, находящиеся в справочнике, а так же узнает их роль в создании архитектуры сложных систем. Книга пригодится профессиональным разработчикам и программистам, изучающим объектно-ориентированное проектирование.
Содержание
Предисловие.10
Глава 1. Введение в паттерны проектирования.15
1.1. Что такое паттерн проектирования.16
1.2. Паттерны проектирования в схеме MVC в языке Smalltalk.18
1.3. Описание паттернов проектирования.20
1.4. Каталог паттернов проектирования.22
1.5. Организация каталога.24
1.6. Как решать задачи проектирования с помощью паттернов.25
Поиск подходящих объектов.25
Определение степени детализации объекта.27
Специфицирование интерфейсов объекта.27
Специфицирование реализации объектов.29
Механизмы повторного использования..32
Сравнение структур времени выполнения и времени компиляции .37
Проектирование с учетом будущих изменений.38
1.7. Как выбирать паттерн проектирования.43
1.8. Как пользоваться паттерном проектирования .44
Глава 2. Проектирование редактора документов.46
2.1. Задачи проектирования.46
2.2. Структура документа.48
Рекурсивная композиция..49
Глифы.51
Паттерн компоновщик .53
2.3. Форматирование.53
Инкапсуляция алгоритма форматирования.54
Классы Compositor и Composition .54
Стратегия .56
2.4. Оформление пользовательского интерфейса.56
Прозрачное обрамление.57
Моноглиф..58
Паттерн декоратор.60
2.5. Поддержка нескольких стандартов внешнего облика.60
Абстрагирование создания объекта.61
Фабрики и изготовленные классы.61
Паттерн абстрактная фабрика .64
2.6. Поддержка нескольких оконных систем.64
Можно ли воспользоваться абстрактной фабрикой? .64
Инкапсуляция зависимостей от реализации.65
Классы Window и Windowlmp.67
Подклассы Windowlmp .68
Конфигурирование класса Window с помощью Windowlmp .70
Паттерн мост .70
2.7. Операции пользователя.71
Инкапсуляция запроса.72
Класс Command и его подклассы.73
Отмена операций.74
История команд .75
Паттерн команда .76
2.8. Проверка правописания и расстановка переносов.76
Доступ к распределенной информации .77
Инкапсуляция доступа и порядка обхода.77
Класс Iterator и его подклассы.78
Паттерн итератор.81
Обход и действия, выполняемые при обходе.81
Класс Visitor и его подклассы.86
Паттерн посетитель.87
2.9. Резюме.88
Глава 3. Порождающие паттерны.89
Паттерн Abstract Factory.93
Паттерн Builder. 102
Паттерн Factory Method. 111
Паттерн Prototype. 121
Паттерн Singleton. 130
Обсуждение порождающих паттернов. 138
Глава 4. Структурные паттерны.140
Паттерн Adapter. 141
Паттерн Bridge. 152
Паттерн Composite. 162
Паттерн Decorator. 173
Паттерн Facade. 183
Паттерн Flyweight. 191
Паттерн Proxy.203
Обсуждение структурных паттернов.213
Адаптер и мост. 21 3
Компоновщик, декоратор и заместитель . 21 4
Глава 5. Паттерны поведения.216
Паттерн Chain of Responsibility.217
Паттерн Command.227
Паттерн Interpreter.236
Паттерн Iterator.249
Паттерн Mediator.263
Паттерн Memento.272
Паттерн Observer.280
Паттерн State.291
Паттерн Strategy.300
Паттерн Template Method.309
Паттерн Visitor.314
Обсуждение паттернов поведения.328
Инкапсуляция вариаций . 328
Объекты как аргументы. 328
Должен ли обмен информацией быть инкапсулированным или распределенным. 329
Разделение получателей и отправителей. 330
Резюме. 332
Глава 6. Заключение.333
6.1. Чего ожидать от паттернов проектирования.333
Единый словарь проектирования. 333
Помощь при документировании и изучении. 334
Дополнение существующих методов..334
Цель реорганизации. 335
6.2. Краткая история.336
6.3. Проектировщики паттернов.337
Языки паттернов Александра. 338
Паттерны в программном обеспечении. 339
6.4. Приглашение.339
6.5. На прощание.340
Приложение А. Глоссарий.341
Приложение В. Объяснение нотации.344
8.1. Диаграмма классов.344
8.2. Диаграмма объектов.345
8.3. Диаграмма взаимодействий.346
Приложение С. Базовые классы.348
С. 1. List.348
С.2. Iterator.350
СЗ. Listlterator.350
С.4. Point.351
С.5. Rect.351
Библиография.353
Алфавитный указатель.
Прикладные программы.
Если вы проектируете прикладную программу, например редактор документов или электронную таблицу, то наивысший приоритет имеют внутреннее повторное использование, удобство сопровождения и расширяемость. Первое подразумевает, что вы не проектируете и не реализуете больше, чем необходимо. Повысить степень внутреннего повторного использования помогут паттерны, уменьшающие число зависимостей. Ослабление связанности увеличивает вероятность того, что некоторый класс объектов сможет совместно работать с другими.
Например, устраняя зависимости от конкретных операций путем изолирования и инкапсуляции каждой операции, вы упрощаете задачу повторного использования любой операции в другом контексте. К тому же результату приводит устранение зависимостей от алгоритма и представления.
Паттерны проектирования также позволяют упростить сопровождение приложения, если использовать их для ограничения платформенных зависимостей и разбиения системы на отдельные слои. Они способствуют и наращиванию функций системы, показывая, как расширять иерархии классов и когда применять композицию объектов. Уменьшение степени связанности также увеличивает возможность развития системы. Расширение класса становится проще, если он не зависит от множества других.
Купить книгу - Паттерны проектирования - Приемы объектно - ориентированного проектирования - Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д.
Купить книгу - Паттерны проектирования - Приемы объектно - ориентированного проектирования - Гамма Э., Хелм Р., Джонсон Р., Влиссидес Д.
Теги: книга по программированию :: паттерны проектирования :: Гамма :: Хелм
Смотрите также учебники, книги и учебные материалы:
- Технологии программирования на Java, том 1, Графика - JavaBeans - Дейтел Х.М., Дейтел П.Д., Сантри С.И.
- C++ для чайников - Стефан Р. Дэвис
- Алгоритмические трюки для программистов - Уоррен Г.
- Perl: библиотека программиста - Кристиансен Т., Торкингтон Н.
- LWP библиотека для доступа к WWW из Perl
- Освой самостоятельно Perl за 24 часа - Пирс Клинтон
- Работа с текстом Perl
- Безопасное программирование на языке Perl - Крис Касперски