Паттерны объектно-ориентированного проектирования

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Больше 25 лет прошло с момента выхода первого тиража книги Design Patterns. За это время книга из популярной превратилась в культовую. Во всем мире ее рекомендуют прочитать каждому, кто хочет связать жизнь с информационными технологиями и программированием. «Русский» язык, на котором разговаривают айтишники, поменялся, многие англоязычные термины стали привычными, паттерны вошли в нашу жизнь. Перед вами юбилейное издание с обновленным переводом книги, ставшей must-read для каждого программиста. «Паттерны объектно-ориентированного проектирования» пришли на смену «Приемам объектно-ориентированного проектирования». Четыре первоклассных разработчика — Банда четырех — представляют вашему вниманию опыт ООП в виде двадцати трех паттернов. Паттерны появились потому, что разработчики искали пути повышения гибкости и степени повторного использования своих программ. Авторы не только дают принципы использования шаблонов проектирования, но и систематизируют информацию. Вы узнаете о роли паттернов в архитектуре сложных систем и сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов. Все шаблоны взяты из реальных систем и основаны на реальной практике. Для каждого паттерна приведен код на C++ или Smalltalk, демонстрирующий его возможности.

Author(s): Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
Series: Библиотека программиста
Edition: 1
Publisher: Питер
Year: 2020

Language: Russian
Commentary: Vector PDF
Pages: 448
City: СПб.
Tags: C++; Design Patterns; Object-Oriented Programming; Programming Style; Smalltalk

Предисловие
От издательства
Глава 1. Введение в паттерны проектирования
1.1. Что такое паттерн проектирования
1.2. Паттерны проектирования в схеме MVC в языке Smalltalk
1.3. Описание паттернов проектирования
1.4. Каталог паттернов проектирования
1.5. Организация каталога
1.6. Как решать задачи проектирования с помощью паттернов
Поиск подходящих объектов
Определение степени детализации объекта
Определение интерфейсов объекта
Определение реализации объектов
Наследование класса и наследование интерфейса
Механизмы повторного использования
Сравнение структур времени выполнения и времени компиляции
Проектирование с учетом будущих изменений
1.7. Как выбирать паттерн проектирования
1.8. Как пользоваться паттерном проектирования
Глава 2. Практический пример: проектирование редактора документов
2.1. Задачи проектирования
2.2. Структура документа
Рекурсивная композиция
Глифы
Паттерн Composite (компоновщик)
2.3. Форматирование
Инкапсуляция алгоритма форматирования
Классы Compositor и Composition
Паттерн Strategy (Стратегия)
2.4. Оформление пользовательского интерфейса
Прозрачное окружение
Моноглиф
Паттерн Decorator (декоратор)
2.5. Поддержка нескольких стандартов оформления
Абстрагирование создания объекта
Фабрики и изготовленные классы
Паттерн Abstract Factory (абстрактная фабрика)
2.6. Поддержка нескольких оконных систем
Можно ли воспользоваться абстрактной фабрикой?
Инкапсуляция зависимостей от реализации
Классы Window и WindowImp
Подклассы WindowImp
Настройка класса Window с помощью WindowImp
Паттерн Bridge (мост)
2.7. Операции пользователя
Инкапсуляция запроса
Класс Command и его подклассы
Отмена операций
История команд
Паттерн Command (команда)
2.8. Проверка правописания и расстановка переносов
Доступ к распределенной информации
Инкапсуляция доступа и порядка обхода
Класс Iterator и его подклассы
Паттерн Iterator (итератор)
Обход и действия, выполняемые при обходе
Инкапсуляция анализа
Класс Visitor и его подклассы
Паттерн 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. На прощание
Приложение А. Глоссарий
Приложение Б. Объяснение нотации
Б.1. Схема классов
Б.2. Схема объектов
Б.3. Схема взаимодействий
Приложение В. Фундаментальные классы
В.1. List
В.2. Iterator
В.3. ListIterator
В.4. Point
В.5. Rect
Библиография
Алфавитный указатель