Информация о книге

978-5-496-01649-0

Главная  » Тематика определяется » Паттерны проектирования на платформе .NET

Тепляков С.Д., Паттерны проектирования на платформе .NET

Питер, 2016 г., 320 стр., 978-5-496-01649-0


Описание книги

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

Ключевые слова

Поделиться ссылкой на книгу



Содержание книги

Об авторе
Кому адресована эта книга
Как читать эту книгу
Отзывы
Благодарности
От издательства
Предисловие
GoF-паттерны на платформе NET
Отношение к паттернам проектирования
Фреймворки паттернов
Гибкость vs конкретность
Для чего нужна еще одна книга о паттернах
Часть I. Паттерны поведения
Глава 1. Паттерн "Стратегия" (Strategy)
Мотивация
Варианты реализации в NET
Обсуждение паттерна "Стратегия"
Выделять интерфейс или нет
Интерфейс vs делегат
Применимость
Примеры в NET Framework
Глава 2. Паттерн "Шаблонный метод" (Template
Method)
Мотивация
Варианты реализации в NET
Локальный шаблонный метод на основе делегатов
Шаблонный метод на основе методов расширения
Обсуждение паттерна "Шаблонный метод"
Изменение уровня абстракции
Стратегия vs шаблонный метод
Шаблонный метод и обеспечение тестируемости
Шаблонный метод и контракты
Применимость Примеры в NET Framework
Глава 3. Паттерн "Посредник" (Mediator)
Мотивация
Обсуждение паттерна "Посредник"
Явный и неявный посредник
Явные и неявные связи
Тестировать или не тестировать? Вот в чем вопрос!
Архитектурные посредники
Применимость
Когда третий лишний
Примеры в NET Framework
Глава 4. Паттерн "Итератор" (Iterator)
Мотивация
Обсуждение
Особенности итераторов в C#/ NET
"Ленивость" итераторов
Использование итераторов в цикле foreach
Итераторы или генераторы
Валидность итераторов
Итераторы и структуры
Push-based-итераторы
Применимость
Примеры в NET Framework
Глава 5. Паттерн "Наблюдатель" (Observer)
Общие сведения
Мотивация
Варианты реализации
Методы обратного вызова
События
Строго типизированный наблюдатель
IObserver/IObservable
Обсуждение паттерна "Наблюдатель"
Выбор варианта реализации "Наблюдателя"
Делегаты
События
Наблюдатель в виде специализированного
интерфейса
Сколько информации передавать наблюдателю
Наблюдатели и утечки памяти
Применимость
Примеры в NET Framework
Глава 6. Паттерн "Посетитель" (Visitor)
Мотивация
Обсуждение
Функциональная vs Объектная версия
Двойная диспетчеризация
Интерфейс vs абстрактный класс посетителя
Применимость
Примеры в NET Framework
Глава 7. Другие паттерны поведения
Паттерн "Команда"
Паттерн "Состояние"
Паттерн "Цепочка обязанностей"
Часть II. Порождающие паттерны
Глава 8. Паттерн "Синглтон" (Singleton)
Мотивация
Варианты реализации в NET
Реализация на основе Lazy of T
Блокировка с двойной проверкой
Реализация на основе инициализатора
статического поля
Обсуждение паттерна "Синглтон"
Singleton vs Ambient Context
Singleton vs Static Class
Особенности и недостатки
Применимость: паттерн или антипаттерн
Примеры в NET Framework
Дополнительные ссылки
Глава 9. Паттерн "Абстрактная фабрика" (Abstract
Factory)
Мотивация
Обсуждение паттерна "Абстрактная фабрика"
Проблема курицы и яйца
Обобщенная абстрактная фабрика
Применимость паттерна "Абстрактная фабрика"
Примеры в NET Framework
Глава 10. Паттерн "Фабричный метод" (Factory
Method)
Мотивация
Диаграмма паттерна "Фабричный метод"
Классическая реализация
Статический фабричный метод
Полиморфный фабричный метод
Варианты реализации
Использование делегатов в статической фабрике
Обобщенные фабрики
Обсуждение паттерна "Фабричный метод"
Сокрытие наследования
Устранение наследования
Использование Func в качестве фабрики
Конструктор vs фабричный метод
Применимость паттерна "Фабричный метод"
Применимость классического фабричного метода
Применимость полиморфного фабричного метода
Применимость статического фабричного метода
Примеры в NET Framework
Глава 11. Паттерн "Строитель" (Builder)
Мотивация
Особенности реализации в NET
Использование текучего интерфейса
Методы расширения
Обсуждение паттерна "Строитель"
Строго типизированный строитель
Создание неизменяемых объектов
Частичная изменяемость
Применимость
Примеры в NET Framework
Часть III. Структурные паттерны
Глава 12. Паттерн "Адаптер" (Adapter)
Мотивация
Обсуждение паттерна "Адаптер"
Адаптер классов и объектов
Адаптивный рефакторинг
Языковые адаптеры
Применимость
Примеры в NET Framework
Глава 13. Паттерн "Фасад" (Facade)
Мотивация
Обсуждение паттерна "Фасад"
Инкапсуляция стороннего кода
Повышение уровня абстракции
Применимость
Примеры в NET Framework
Глава 14. Паттерн "Декоратор" (Decorator)
Мотивация
Обсуждение паттерна "Декоратор"
Композиция vs наследование
Инициализация декораторов
Недостатки декораторов
Генерация декораторов
Применимость
Примеры в NET Framework
Глава 15. Паттерн "Компоновщик" (Composite)
Мотивация
Обсуждение паттерна "Компоновщик"
Применимость
Примеры в NET Framework
Глава 16. Паттерн "Заместитель" (Proxy)
Мотивация
Обсуждение паттерна "Заместитель"
Прозрачный удаленный заместитель
Заместитель vs декоратор
Виртуальный заместитель и Lazy<T>
Применимость
Примеры в NET Framework
Часть IV. Принципы проектирования
Глава 17. Принцип единственной обязанности
Для чего нужен SRP
Принцип единственной обязанности на практике
Типичные примеры нарушения SRP
Выводы
Глава 18. Принцип "открыт/закрыт"
Путаница с определениями
Какую проблему призван решить принцип
"открыт/закрыт"
Принцип "открыт/закрыт" на практике
Закрытость интерфейсов
Открытость поведения
Принцип единственного выбора
Расширяемость: объектно-ориентированный и
функциональный подходы
Типичные примеры нарушения принципа
"открыт/закрыт"
Выводы
Глава 19. Принцип подстановки Лисков
Для чего нужен принцип подстановки Лисков
Классический пример нарушения: квадраты и
прямоугольники
Принцип подстановки Лисков и контракты
О сложностях наследования в реальном мире
Когда наследования бывает слишком мало
Принцип подстановки Лисков на практике
Типичные примеры нарушения LSP
Выводы
Дополнительные ссылки
Глава 20. Принцип разделения интерфейсов
Для чего нужен принцип разделения интерфейса
SRP vs ISP
Принцип разделения интерфейсов на практике
Типичные примеры нарушения ISP
Выводы
Глава 21. Принцип инверсии зависимостей
Интерфейсы
Слои
Наблюдатели
Для чего нужен принцип инверсии зависимостей
Остерегайтесь неправильного понимания DIP
Тестируемость решения vs подрыв инкапсуляции
Принцип инверсии зависимостей на практике
Примеры нарушения принципа инверсии
зависимостей
Выводы
Дополнительные ссылки
Глава 22. Размышления о принципах
проектирования
Использование принципов проектирования
Правильное использование принципов
проектирования
Антипринципы проектирования
Заключение
Источники информации
Книги о дизайне и ООП
Статьи


Об авторе


Отзывы

Александр  [ 2 August 2016]
Хотелось бы сказать именно о печатном издании. К содержанию книги никаких претензий. Книга показалась мне интересной и полезной. Есть несколько неприятных моментов: * бумага очень тонкая, из-за чего виден текст обратной стороны страницы и читать очень трудно, * шрифт бледный и текст трудно читать (особенно блоки с кодом), * большое количество опечаток и грамматических ошибок. Книгу купил около 6 месяцев назад. Очень обрадовался, когда получил, и очень расстроился, когда начал читать. Бледный шрифт и тонкие страницы не давали мне сосредоточиться на содержании. Приходилось вчитываться и разглядывать содержимое. В итоге друг поделился электронным вариантом, который я с большим удовольствием прочел. Сегодня решил освежить знания и снова взял бумажный вариант книги. Печали моей не было предела. Книгу отложил и пошел искать электронную версию. В связи с чем и решил написать этот отзыв. Мнение, конечно, субъективное. Кто-то скажет, что я придираюсь. Возможно, мне не повезло, и попалась книга из некачественно напечатанной партии, но книг я прочел много и сравнить есть с чем. Поэтому рекомендовал бы к покупке электронный вариант.
Великолепно! Каждый .NET разработчик должен прочитать.  [10 April 2016]
Во-первых, книга уже для тех, кто в теме. В отличие от такого бестселлера как Head First Design Patterns, там не разжёвывают и не кладут в рот. Я думаю, книга интересна в первую очередь тем, что читается иначе. Все нынешние книги про паттерны и проектирование - переводы и это дает отпечаток. Книга, написанная изначально на великом и могучем, с национальным юмором, объясняет и мотивирует иначе.
Второе преимущество - изначально заточена под C#, дает лучшие варианты реализаций паттернов на нём и примеры, в каких местах .net framework они используются.
Благодаря этой книге понимаешь, что ты и так всю жизнь пользовался паттернами неявно, но, наконец, осознаешь, где и какие применял. Например, скрытые от нас и одновременно вездесущие mediator, chain of responsibility и builder.
В конце объясняются принципы SOLID, из которых собственно всё паттерны и происходят. Это как законы Ньютона, из которых выводятся все законы механики.
В отличие от заумных талмудов архитектурных астронавтов прошлого тут всего 300 страниц. Знания даются исключительно компактно и всегда по делу.
отличная книга  [30 March 2016]
Отличная книга, на мой взгляд, маст-хэв/маст рид
Книга хорошая и полезная  [ 7 March 2016]
Все хорошо, и интересно пишет автор. Но очень много опечаток.
Отличная настольная книга каждого программиста .NET  [11 October 2015]
По мне так очень хорошая книга от далеко не малоизвестного автора блогов Сергея Теплякова. В ней есть все необходимые паттерны, с которыми мы так или иначе сталкиваемся при работе. Понравилось еще то, что автор придерживается нейтралитета при описании различных подходов и не идет навязывание "отсебятины".
Отличная книга  [16 August 2015]
Решил поддержать нашего отечественного автора и купил книгу, хотя обычно читаю в электронном виде. Книга хороша, каждый паттерн "разжевывается", демонстрируются несколько способов реализации от классического до более подходящих для платформы .net. Еще, что мне сильно понравилось, много ссылок на статьи и книги других авторов, в том числе по другим темам. Всем советую.
Must have, однозначно!  [ 3 June 2015]
Автор просто молодец! Все по делу и ничего лишнего. Сразу видно - практикующий программист, а не академический слон.
Отличная книга, must read для .NET разработчиков  [ 3 May 2015]
Даже если вы изучали паттерны проектирования раньше эта книга будет для вас полезной. Автор не пересказывает классические книги "банды четырёх" и Роберта Мартина, а сквозь призму своего немалого опыта (Сергей Тепляков является C# MPV, с недавнего времени работает в Microsoft), даёт критичную оценку паттернам и принципам проектирования, а также на хороших примерах показывает особенности и различные варианты реализации на .NET.
Также могу всем порекомендовать блог Сергея http://sergeyteplyakov.blogspot.ru/ , где вы найдёте множество интересной информации.

Последние поступления в рубрике "Тематика определяется"



Математика. Подготовка к ЕГЭ. Задачи с параметрами.10-11 классы 

В предлагаемом пособии представлен обширный материал, посвященный двум заключительным и сложным темам ЕГЭ профильного уровня: задачам с параметрами и числам и их свойствам. На многочисленных примерах с подробными решениями и обоснованиями (как и требуется на экзамене) показаны различные методы и решения задач....

План счетов бухгалтерского учета с последними изменениями 

Читателю предлагается самая последняя редакция Плана счетов бухгалтерского учета финансово-хозяйственной деятельности организаций и инструкции по его применению с учетом последних приказов Минфина РФ. План счетов - это важнейший инструмент бухгалтерского учета, настольная книга для каждого практического бухгалтера....

На ферме. Книжка с наклейками 

Игры с наклейками - занятие не только интересное, но и полезное. С этой книгой малыш познакомится с различными видами транспорта, потренируется решать простые логические задачки и находить соответствия....

Если Вы задавались вопросами "где найти книгу в интернете?", "где купить книгу?" и "в каком книжном интернет-магазине нужная книга стоит дешевле?", то наш сайт именно для Вас. На сайте книжной поисковой системы Книгопоиск Вы можете узнать наличие книги Тепляков С.Д., Паттерны проектирования на платформе .NET в интернет-магазинах. Также Вы можете перейти на страницу понравившегося интернет-магазина и купить книгу на сайте магазина. Учтите, что стоимость товара и его наличие в нашей поисковой системе и на сайте интернет-магазина книг может отличаться, в виду задержки обновления информации.