Название: Приемы объектно - ориентированного проектирования - Паттерны проектирования.
Автор: Гамма Э., Хелм Р., Джонсон Р.
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
Адаптер и мост. 213
Компоновщик, декоратор и заместитель. 214
Глава 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
Алфавитный указатель.
Паттерны проектирования в схеме MVC в языке Smalltalk.
В Smalltalk-80 для построения интерфейсов пользователя применяется тройка классов модель/вид/контроллер (Model/View/Controller - MVC) [KP88]. Знакомство с паттернами проектирования, встречающимися в схеме MVC, поможет вам разобраться в том, что мы понимаем под словом «паттерн».
MVC состоит из объектов трех видов. Модель - это объект приложения, а вид - экранное представление. Контроллер описывает, как интерфейс реагирует на управляющие воздействия пользователя. До появления схемы MVC эти объекты в пользовательских интерфейсах смешивались. MVC отделяет их друг от друга, за счет чего повышается гибкость и улучшаются возможности повторного использования.
Купить книгу - Приемы объектно - ориентированного проектирования - Паттерны проектирования - Гамма Э., Хелм Р., Джонсон Р.
Купить книгу - Приемы объектно - ориентированного проектирования - Паттерны проектирования - Гамма Э., Хелм Р., Джонсон Р.
Теги: книга по программированию :: объектно-ориентированное проектирование :: Гамма :: Хелм
Смотрите также учебники, книги и учебные материалы:
- Занимательное программирование, самоучитель, Мозговой М.
- Как стать хакером - Левин М.
- Самоучитель Visual C++ .NET - Николай Секунов
- Стандартизация разработки программных средств - Благодатских В.А., Волнин В.А., Поскакалов К.Ф.
- Программирование в среде Visual Basic for Applications - Демидова Л.А., Пылькин А.Н.
- Программирование графики для Windows - Фень Юань
- Наиболее эффективное использование C++ - 35 новых рекомендаций по улучшению ваших программ и проектов - Мейерс С.
- C++Builder 6, справочное пособие, книга 2, Классы и компоненты - Архангельский А.Я.