Ешь, двигайся, спи Жесткий подход Дэна Кеннеди Телефоны Бизбук - c 10 до 18 по будним дням
 
Наши проекты:
Вход для зарегистрированных пользователей
Регистрация нового пользователя
Каталог книг Новинки Анонсы Заказы / Корзина Рассылка Оплата и Доставка Контакты
Вы находитесь в разделе каталога:
• Паттерны проектирования на платформе .NET, Тепляков С В


Паттерны проектирования на платформе .NET
Паттерны проектирования на платформе .NET
Тепляков С В
Год выпуска: 2018
Изд-во: Питер
ISBN: 978-5-4461-0843-5
Переплёт: мягкий
320 страниц
Цена: 385.00 грн.
Временно отсутствует     Оставить заявку

Паттерны проектирования остаются важным инструментом в арсенале разработчика, поскольку они опираются на фундаментальные принципы проектирования. Тем не менее, появление новых конструкций в современных языках программирования делает одни паттерны более важными, а значимость других сводит к минимуму.
Цель книги "Паттерны проектирования на платформе .NET" - показать, как изменились паттерны проектирования за это время, как на них повлияло современное увлечение функциональным программированием, и объяснить, каким образом они используются в современных .NET-приложениях. В издании вы найдете подробное описание классических паттернов проектирования с особенностями их реализации на платформе .NET, а также примеры их использования в .NET Framework. Вы также изучите принципы проектирования, известные под аббревиатурой SOLID, и научитесь применять их при разработке собственных приложений.
Книга "Паттерны проектирования на платформе .NET" предназначена для профессиональных программистов, которые хотят изучить особенности классических принципов и паттернов программирования с примерами на языке C# и понять их роль в разработке современных приложений на платформе .NET.

 

 

Оглавление книги Тепляков С В "Паттерны проектирования на платформе .NET"


Об авторе 15
Кому адресована эта книга 16
Как читать эту книгу 17
Отзывы 18
Благодарности 19
От издательства 20
Предисловие 21
GoF-паттерны на платформе . NET 21
Отношение к паттернам проектирования 22
Фреймворки паттернов 24
Гибкость vs. конкретность 25
Для чего нужна еще одна книга о паттернах 25
Часть I. Паттерны поведения
Глава 1. Паттерн "Стратегия" (Strategy) 28
Мотивация 28
Варианты реализации в . NET 30
Обсуждение паттерна "Стратегия" 31
Выделять интерфейс или нет 32
Интерфейс vs. делегат 32
Применимость 35
Примеры в .NET Framework 36
Глава 2. Паттерн "Шаблонный метод" (Template Method) 37
Мотивация 37
Варианты реализации в .NET 39
Локальный шаблонный метод на основе делегатов 39
Шаблонный метод на основе методов расширения 42
Обсуждение паттерна "Шаблонный метод" 44
Изменение уровня абстракции 44
Стратегия vs. шаблонный метод 45
Шаблонный метод и обеспечение тестируемости 46
Шаблонный метод и контракты 48
Применимость 50
Примеры в .NET Framework 50
Глава 3. Паттерн "Посредник" (Mediator) 57
Мотивация 57
Обсуждение паттерна "Посредник" 60
Явный и неявный посредник 61
Явные и неявные связи 62
Тестировать или не тестировать? Вот в чем вопрос! 64
Архитектурные посредники 65
Применимость 66
Когда третий лишний 66
Примеры в .NET Framework 66
Глава 4. Паттерн "Итератор" (Iterator) . . . . . . . 68
Мотивация 68
Обсуждение 70
Особенности итераторов в C#/.NET 72
"Ленивость" итераторов 76
Использование итераторов в цикле foreach 76
Итераторы или генераторы 78
Валидность итераторов 79
Итераторы и структуры 80
Push-based-итераторы 80
Применимость 81
Примеры в .NET Framework 82
Глава 5. Паттерн "Наблюдатель" (Observer) 83
Общие сведения 83
Мотивация 84
Варианты реализации 86
Методы обратного вызова 86
События 87
Строго типизированный наблюдатель 89
IObserver/IObservable 90
Обсуждение паттерна "Наблюдатель" 93
Выбор варианта реализации "Наблюдателя" 93
Делегаты 93
События 94
Наблюдатель в виде специализированного интерфейса 94
Сколько информации передавать наблюдателю 95
Наблюдатели и утечки памяти 97
Применимость 98
Примеры в .NET Framework 99
Глава 6. Паттерн "Посетитель" (Visitor) 100
Мотивация 100
Обсуждение 105
Функциональная vs. Объектная версия 105
Двойная диспетчеризация 108
Интерфейс vs. абстрактный класс посетителя 109
Применимость 110
Примеры в .NET Framework 111
Глава 7. Другие паттерны поведения 112
Паттерн "Команда" 112
Паттерн "Состояние" 114
Паттерн "Цепочка обязанностей" 116
Часть II. Порождающие паттерны
Глава 8. Паттерн "Синглтон" (Singleton) 122
Мотивация 122
Варианты реализации в .NET 123
Реализация на основе Lazy of T 123
Блокировка с двойной проверкой 124
Реализация на основе инициализатора статического поля 126
Обсуждение паттерна "Синглтон" 129
Singleton vs. Ambient Context 129
Singleton vs. Static Class 132
Особенности и недостатки 132
Применимость: паттерн или антипаттерн . . . . . .. . . . . . 134
Примеры в .NET Framework 135
Дополнительные ссылки 136
Глава 9. Паттерн "Абстрактная фабрика" (Abstract Factory) 137
Мотивация 138
Обсуждение паттерна "Абстрактная фабрика" . . . . . . . . .. . . . . . . . 141
Проблема курицы и яйца 141
Обобщенная абстрактная фабрика 142
Применимость паттерна "Абстрактная фабрика" 143
Примеры в .NET Framework 144
Глава 10. Паттерн "Фабричный метод" (Factory Method) 145
Мотивация 145
Диаграмма паттерна "Фабричный метод" 147
Классическая реализация 147
Статический фабричный метод 148
Полиморфный фабричный метод 148
Варианты реализации 149
Использование делегатов в статической фабрике 149
Обобщенные фабрики 150
Обсуждение паттерна "Фабричный метод" 153
Сокрытие наследования 153
Устранение наследования 154
Использование Func в качестве фабрики 156
Конструктор vs. фабричный метод 156
Применимость паттерна "Фабричный метод" 157
Применимость классического фабричного метода 157
Применимость полиморфного фабричного метода 157
Применимость статического фабричного метода 158
Примеры в .NET Framework 158
Глава 11. Паттерн "Строитель" (Builder) 160
Мотивация 160
Особенности реализации в .NET 164
Использование текучего интерфейса 164
Методы расширения 165
Обсуждение паттерна "Строитель" 167
Строго типизированный строитель 167
Создание неизменяемых объектов 170
Частичная изменяемость 171
Применимость 173
Примеры в .NET Framework 174
Часть III. Структурные паттерны
Глава 12. Паттерн "Адаптер" (Adapter) 188
Мотивация 188
Обсуждение паттерна "Адаптер" 191
Адаптер классов и объектов 191
Адаптивный рефакторинг 192
Языковые адаптеры 194
Применимость 196
Примеры в .NET Framework 196
Глава 13. Паттерн "Фасад" (Facade) 197
Мотивация 197
Обсуждение паттерна "Фасад" 199
Инкапсуляция стороннего кода 199
Повышение уровня абстракции 199
Применимость 200
Примеры в .NET Framework 200
Глава 14. Паттерн "Декоратор" (Decorator) 201
Мотивация 201
Обсуждение паттерна "Декоратор" 205
Композиция vs. наследование 205
Инициализация декораторов 207
Недостатки декораторов 208
Генерация декораторов 208
Применимость 209
Примеры в .NET Framework 209
Глава 15. Паттерн "Компоновщик" (Composite) . . . . . . . . . . . . . . . . 214
Мотивация 214
Обсуждение паттерна "Компоновщик" 218
Применимость 219
Примеры в .NET Framework 220
Глава 16. Паттерн "Заместитель" (Proxy) 221
Мотивация 221
Обсуждение паттерна "Заместитель" 223
Прозрачный удаленный заместитель 224
Заместитель vs. декоратор 224
Виртуальный заместитель и Lazy 225
Применимость 226
Примеры в .NET Framework 226
Часть IV. Принципы проектирования
Глава 17. Принцип единственной обязанности 231
Для чего нужен SRP 233
Принцип единственной обязанности на практике 233
Типичные примеры нарушения SRP 241
Выводы 242
Глава 18. Принцип "открыт/закрыт" 243
Путаница с определениями 244
Какую проблему призван решить принцип "открыт/закрыт" 247
Принцип "открыт/закрыт" на практике 248
Закрытость интерфейсов 248
Открытость поведения 251
Принцип единственного выбора 253
Расширяемость: объектно-ориентированный и функциональный подходы 254
Типичные примеры нарушения принципа "открыт/закрыт" 258
Выводы 258
Глава 19. Принцип подстановки Лисков 260
Для чего нужен принцип подстановки Лисков 262
Классический пример нарушения: квадраты и прямоугольники 263
Принцип подстановки Лисков и контракты 265
О сложностях наследования в реальном мире 265
Когда наследования бывает слишком мало 268
Принцип подстановки Лисков на практике 270
Типичные примеры нарушения LSP 273
Выводы 273
Дополнительные ссылки 274
Глава 20. Принцип разделения интерфейсов 275
Для чего нужен принцип разделения интерфейса 276
SRP vs. ISP 278
Принцип разделения интерфейсов на практике 279
Типичные примеры нарушения ISP 282
Выводы 282
Глава 21. Принцип инверсии зависимостей 284
Интерфейсы 285
Слои. . 286
Наблюдатели 288
Для чего нужен принцип инверсии зависимостей 291
Остерегайтесь неправильного понимания DIP 293
Тестируемость решения vs. подрыв инкапсуляции 294
Принцип инверсии зависимостей на практике 295
Примеры нарушения принципа инверсии зависимостей 300
Выводы 300
Дополнительные ссылки 304
Глава 22. Размышления о принципах проектирования 305
Использование принципов проектирования 307
Правильное использование принципов проектирования 308
Антипринципы проектирования 310
Заключение 311
Источники информации 313
Книги о дизайне и ООП 313
Статьи . . . . . . . . . . . . . . . . . . . . . . 316


С этой книгой чаще всего покупают:
CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#

CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#

рекомендуем
Джеффри Рихтер
Год выпуска: 2016
Изд-во: Питер
Временно отсутствует   Оставить заявку
 
C# для профессионалов: тонкости программирования, 3-е издание

C# для профессионалов: тонкости программирования, 3-е издание

рекомендуем
Джон Скит
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует Оставить заявку
Цена: 880.00 грн. 
 
Цена: 580.00 грн. 
Адаптивный код: гибкое кодирование с помощью паттернов проектирования и принципов SOLID

Адаптивный код: гибкое кодирование с помощью паттернов проектирования и принципов SOLID

рекомендуем
Гэри Маклин Холл
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
Шаблоны корпоративных приложений

Шаблоны корпоративных приложений

рекомендуем
Мартин Фаулер
Год выпуска: 2019
Изд-во: Диалектика-Вильямс
в корзину
Только на 1 книгу
Цена: 800.00 грн. 
 
Цена: 870.00 грн. 
Приемы объектно-ориентированного проектирования. Паттерны проектирования

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

рекомендуем
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
Изд-во: Питер
Временно отсутствует   Оставить заявку
 
Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем

Предметно-ориентированное проектирование (DDD): структуризация сложных программных систем

рекомендуем
Эрик Эванс
Год выпуска: 2019
Изд-во: Диалектика-Вильямс
в корзину
Только на 1 книгу
Цена: 349.00 грн. 
 
Цена: 1050.00 грн. 
C# 6.0. Справочник. Полное описание языка

C# 6.0. Справочник. Полное описание языка

Джозеф Албахари, Бен Албахари
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
в корзину
Только на 1 книгу
 
Рефакторинг с использованием шаблонов

Рефакторинг с использованием шаблонов

Джошуа Кериевски
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует Оставить заявку
Цена: 800.00 грн. 
 
Цена: 800.00 грн. 
Microsoft .NET: архитектура корпоративных приложений, 2-е издание

Microsoft .NET: архитектура корпоративных приложений, 2-е издание

рекомендуем
Дино Эспозито, Андреа Салтарелло
Год выпуска: 2016
Изд-во: Диалектика-Вильямс
Временно отсутствует   Оставить заявку
 
   
Цена: 800.00 грн. 
   

Хотите оставить отзыв? У Вас возникли вопросы о книге "Паттерны проектирования на платформе .NET, Тепляков С В" ? Пишите:

* Текст сообщения:
 
  Отправить
Поиск по каталогу
 поиск в аннотациях
Искать

* Подробнее об условиях доставки смотрите в разделе "Оплата и Доставка" нашего магазина.
Если у Вас возникли вопросы как подобрать и купить книги в нашем интернет-магазине звоните с 9 до 18 по будним дням: Киев 331-04-53, Водафон (050) 809-56-66, Киевстар (067) 408-26-36, Лайф (063) 227-24-47, Интертелеком (094) 831-04-53 или пишите нам

 
   
  Programming - Dmitriy Kotov & Andrey Kotov