ebook img

Паттерны проектирования с примерами на C# PDF

140 Pages·2.453 MB·Russian
by  D.
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Паттерны проектирования с примерами на C#

Design Patterns with examples in C# Author D Паттерны проектирования с примерами на языке C# Автор D 2012 2 Оглавление Вступление ................................................................................................................... 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 3 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 4 Цель ................................................................................................................................................................... 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 5 Перечень поведенческий шаблонов .............................................................................................................. 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 6 Структура .......................................................................................................................................................... 89 Область применения ....................................................................................................................................... 89 Пример реализации ......................................................................................................................................... 90 State — Состояние ................................................................................................................................... 92 Структура .......................................................................................................................................................... 92 Пример реализации ......................................................................................................................................... 92 Strategy — Стратегия ................................................................................................................................ 99 Задача ................................................................................................................................................................ 99 Мотивы ............................................................................................................................................................. 99 Способ решения ............................................................................................................................................... 99 Участники .......................................................................................................................................................... 99 Следствия .......................................................................................................................................................... 99 Реализация ....................................................................................................................................................... 99 Полезные сведения ....................................................................................................................................... 100 Использование ............................................................................................................................................... 100 Сруктура .......................................................................................................................................................... 100 Пример реализации ....................................................................................................................................... 100 Template — Шаблонный метод ............................................................................................................. 103 Применимость ................................................................................................................................................ 103 Участники ........................................................................................................................................................ 103 Сруктура .......................................................................................................................................................... 103 Пример реализации ....................................................................................................................................... 104 Visitor — Посетитель .............................................................................................................................. 106 Структура ........................................................................................................................................................ 106 Описание средствами псевдокода ............................................................................................................... 106 Проблема ........................................................................................................................................................ 107 Решение .......................................................................................................................................................... 107 Рекомендации ................................................................................................................................................ 107 Преимущества ................................................................................................................................................ 107 Недостатки ...................................................................................................................................................... 108 Пример реализации ....................................................................................................................................... 108 Null Object (Null object) .......................................................................................................................... 115 Мотивация ...................................................................................................................................................... 115 Описание......................................................................................................................................................... 115 Структура ........................................................................................................................................................ 115 7 Реализация ..................................................................................................................................................... 116 Пример ............................................................................................................................................................ 116 Связь с другими патернами .......................................................................................................................... 116 Критика и комментарии ................................................................................................................................ 117 Пример реализации ....................................................................................................................................... 117 Слуга (Servant) ....................................................................................................................................... 118 Описание......................................................................................................................................................... 118 Структура ........................................................................................................................................................ 118 Реализаци ....................................................................................................................................................... 119 Пример реализации ....................................................................................................................................... 119 Specification (Specification) ..................................................................................................................... 121 Структура ........................................................................................................................................................ 121 Пример реализации ....................................................................................................................................... 121 Пример использования ................................................................................................................................. 122 Simple Policy ........................................................................................................................................... 124 Обзор ............................................................................................................................................................... 124 Простыми словами ........................................................................................................................................ 125 Сруктура .......................................................................................................................................................... 126 Пример реализации ....................................................................................................................................... 128 Single-serving visitor ............................................................................................................................... 138 Применение ................................................................................................................................................... 138 Пример использования ................................................................................................................................. 138 Плюси .............................................................................................................................................................. 138 Минусы ........................................................................................................................................................... 138 Пример реализации ....................................................................................................................................... 138 Об авторе ................................................................................................................. 140 8 Вступление Представляю вам мануал по паттернам проектирования с примерами на языке C#. Основной материал взят c Википедии http://ru.wikipedia.org/wiki/Design_Patterns . Целью создания данного мануала послужила потребность в кратком справочнике с ясными примерами на языке C# основных паттернов проектирования. Связаться со мной можно на моём вебсайте http://go-d.org или по мейлу [email protected] . Если вам понравился мануал, и вы хотите отблагодарить, просто отправьте https://w.qiwi.com яйцо мне на емейл. 9 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.