|
Design Patterns
with examples in C#
Author D
Паттерны проектирования
с примерами на языке С#
Автор О
Вступление.................................................................................................................. 9
Порождающие шаблоны проектирования................................................................... 11
Использование.................................................................................................................................................................................... 11
Перечень порождающих шаблонов.............................................................................................................................................. 11
Абстрактная фабрика — Абстрактная фабрика................................................................................................ 13
Цель........................................................................................................................................................................................................ 13
Плюсы.................................................................................................................................................................................................... 13
Минусы.................................................................................................................................................................................................. 13
Применимость..................................................................................................................................................................................... 13
Структура............................................................................................................................................................................................... 14
Пример реализации........................................................................................................................................................................... 14
Builder — Строитель.................................................................................................................................... 17
Цель........................................................................................................................................................................................................ 17
Плюсы.................................................................................................................................................................................................... 17
Применение......................................................................................................................................................................................... 17
Структура............................................................................................................................................................................................... 17
Пример реализации........................................................................................................................................................................... 18
Factory method — Фабричный метод............................................................................................................ 20
Цель........................................................................................................................................................................................................ 20
Структура............................................................................................................................................................................................... 20
Плюсы.................................................................................................................................................................................................... 21
Минусы.................................................................................................................................................................................................. 21
Пример реализации........................................................................................................................................................................... 22
Lazy initialization — Ленивая инициализация.................................................................................................. 23
Достоинства.......................................................................................................................................................................................... 23
Недостатки............................................................................................................................................................................................ 23
Пример реализации........................................................................................................................................................................... 23
Object pool — Объектный пул...................................................................................................................... 25
Применение......................................................................................................................................................................................... 25
Переполнение..................................................................................................................................................................................... 25
Примеры............................................................................................................................................................................................... 25
Ловушки................................................................................................................................................................................................. 25
Пример реализации........................................................................................................................................................................... 25
Prototype — Прототип................................................................................................................................ 31
Назначение........................................................................................................................................................................................... 31
Применимость..................................................................................................................................................................................... 31
Структура............................................................................................................................................................................................... 31
Пример реализации........................................................................................................................................................................... 32
Singleton — Одиночка................................................................................................................................. 34
Цель........................................................................................................................................................................................................ 34
Плюсы.................................................................................................................................................................................................... 34
Минусы.................................................................................................................................................................................................. 34
Применение......................................................................................................................................................................................... 34
Структура............................................................................................................................................................................................... 34
Пример реализации........................................................................................................................................................................... 34
Double checked locking - Блокировка с двойной проверкой............................................................................... 37
Пример реализации........................................................................................................................................................................... 37
Структурные шаблоны проектирования....................................................................... 38
Использование.................................................................................................................................................................................... 38
Перечень структурных шаблонов.................................................................................................................................................. 38
Front Controller — Входная точка................................................................................................................. 40
Пример.................................................................................................................................................................................................. 40
Структура............................................................................................................................................................................................... 40
Adapter — Адаптер..................................................................................................................................... 41
Задача..................................................................................................................................................................................................... 41
Способ решения.................................................................................................................................................................................. 41
Участники.............................................................................................................................................................................................. 41
Структура............................................................................................................................................................................................... 41
Следствия.............................................................................................................................................................................................. 41
Реализация........................................................................................................................................................................................... 41
Пример реализации........................................................................................................................................................................... 42
Bridge — Мост............................................................................................................................................ 43
Цель........................................................................................................................................................................................................ 43
Структура............................................................................................................................................................................................... 43
Описание............................................................................................................................................................................................... 43
Использование.................................................................................................................................................................................... 44
Пример реализации........................................................................................................................................................................... 44
Composite — Компоновщик......................................................................................................................... 47
Цель........................................................................................................................................................................................................ 47
Структура............................................................................................................................................................................................... 47
Пример реализации........................................................................................................................................................................... 47
Decorator — Декоратор............................................................................................................................... 50
Задача..................................................................................................................................................................................................... 50
Способ решения.................................................................................................................................................................................. 50
Участники.............................................................................................................................................................................................. 50
Следствия.............................................................................................................................................................................................. 50
Реализация........................................................................................................................................................................................... 50
Замечания и комментарии............................................................................................................................................................... 50
Применение шаблона....................................................................................................................................................................... 51
Структура............................................................................................................................................................................................... 51
Пример реализации........................................................................................................................................................................... 52
Facade — Фасад.......................................................................................................................................... 54
Структура............................................................................................................................................................................................... 54
Проблема.............................................................................................................................................................................................. 54
Решение................................................................................................................................................................................................ 54
Особенности применения................................................................................................................................................................ 54
Пример реализации........................................................................................................................................................................... 55
Flyweight — Приспособленец....................................................................................................................... 57
Цель........................................................................................................................................................................................................ 57
Описание............................................................................................................................................................................................... 57
Сруктура................................................................................................................................................................................................. 57
Пример реализации........................................................................................................................................................................... 57
Proxy — Заместитель................................................................................................................................... 60
Проблема.............................................................................................................................................................................................. 60
Решение................................................................................................................................................................................................ 60
Структура............................................................................................................................................................................................... 60
Преимущества..................................................................................................................................................................................... 61
Недостатки............................................................................................................................................................................................ 61
Сфера применения............................................................................................................................................................................. 61
Прокси и близкие к нему шаблоны............................................................................................................................................... 61
Пример реализации........................................................................................................................................................................... 61
Поведенческие шаблоны проектирования.................................................................. 64
Использование.................................................................................................................................................................................... 64
Перечень поведенческий шаблонов............................................................................................................................................. 64
Chain of responsibility — Цепочка обязанностей.............................................................................................. 65
Применение......................................................................................................................................................................................... 65
Сруктура................................................................................................................................................................................................. 65
Пример реализации........................................................................................................................................................................... 65
Command — Команда................................................................................................................................. 68
Цель........................................................................................................................................................................................................ 68
Описание............................................................................................................................................................................................... 68
Сруктура................................................................................................................................................................................................. 68
Пример реализации........................................................................................................................................................................... 68
Interpreter — Интерпретатор...................................................................................................................... 72
Проблема.............................................................................................................................................................................................. 72
Решение................................................................................................................................................................................................ 72
Преимущества..................................................................................................................................................................................... 72
Недостатки............................................................................................................................................................................................ 72
Пример.................................................................................................................................................................................................. 72
Структура............................................................................................................................................................................................... 72
Пример реализации........................................................................................................................................................................... 72
Iterator — Итератор................................................................................................................................... 75
Структура............................................................................................................................................................................................... 76
Пример реализации........................................................................................................................................................................... 76
Mediator — Посредник............................................................................................................................... 79
Проблема.............................................................................................................................................................................................. 79
Решение................................................................................................................................................................................................ 79
Преимущества..................................................................................................................................................................................... 79
Структура............................................................................................................................................................................................... 79
Описание............................................................................................................................................................................................... 79
Пример реализации........................................................................................................................................................................... 79
Memento — Хранитель............................................................................................................................... 82
Применение......................................................................................................................................................................................... 82
Структура............................................................................................................................................................................................... 82
Описание............................................................................................................................................................................................... 83
Пример реализации........................................................................................................................................................................... 83
Observer — Наблюдатель............................................................................................................................ 89
Назначение........................................................................................................................................................................................... 89
Структура............................................................................................................................................................................................... 89
Область применения......................................................................................................................................................................... 89
Пример реализации.......................................................................................................................................................................... 90
State — Состояние...................................................................................................................................... 92
Структура............................................................................................................................................................................................... 92
Пример реализации.......................................................................................................................................................................... 92
Strategy — Стратегия.................................................................................................................................. 99
Задача..................................................................................................................................................................................................... 99
Мотивы.................................................................................................................................................................................................. 99
Способ решения................................................................................................................................................................................. 99
Участники.............................................................................................................................................................................................. 99
Следствия.............................................................................................................................................................................................. 99
Реализация........................................................................................................................................................................................... 99
Полезные сведения........................................................................................................................................................................ 100
Дата добавления: 2015-09-29; просмотров: 24 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |