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

375 грн.

Описание

Паттерны проектирования на платформе .NET, Тепляков С. В. купить книга Україна

Обкладинка – м”яка

Рік видання – 2016

Кількість сторінок – 320

ISBN – 978-5-496-01649-0

Бумага – біла, офсет

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

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

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

Об авторе

Кому адресована эта книга

Как читать эту книгу

Отзывы

Благодарности

Від видавця

Предисловие

GoF-паттерны .на .платформе . .NET

Отношение .к .паттернам .проектирования

Фреймворки .паттернов

Гибкость .vs . .конкретность

Для .чего .нужна .еще .одна .книга .о .паттернах

Часть I. Паттерны поведенияГлава 1. Паттерн «Стратегия» (Strategy)

Мотивация

Варианты .реализации .в . .NET

7Обсуждение .паттерна .«Стратегия»

Выделять .интерфейс .или .нет

Интерфейс .vs . .делегат

Применимость

Примеры .в . .NET .Framework

Глава 2. Паттерн «Шаблонный метод» (Template Method)

Мотивация

Варианты .реализации .в . .NET

Локальный .шаблонный .метод .на .основе .делегатов

Шаблонный .метод .на .основе .методов .расширения

Обсуждение .паттерна .«Шаблонный .метод»

Изменение .уровня .абстракции

Стратегия .vs . .шаблонный .метод

Шаблонный .метод .и .обеспечение .тестируемости

Шаблонный .метод .и .контракты

Применимость

Примеры .в . .NET .Framework

Глава 3. Паттерн «Посредник» (Mediator)

Мотивация

Обсуждение .паттерна .«Посредник»

Явный .и .неявный .посредник

Явные .и .неявные .связи

Тестировать .или .не .тестировать? .Вот .в .чем .вопрос!

Архитектурные .посредники

Применимость

Когда .третий .лишний

Примеры .в . .NET .Framework

Глава 4. Паттерн «Итератор» (Iterator)

Мотивация

Обсуждение

8Особенности .итераторов .в .C#/ .NET

«Ленивость» .итераторов

Использование .итераторов .в .цикле .foreach

Итераторы .или .генераторы

Валидность .итераторов

Итераторы .и .структуры

Push-based-итераторы

Применимость

Примеры .в . .NET .Framework

Глава 5. Паттерн «Наблюдатель» (Observer)

Общие .сведения

Мотивация

Варианты .реализации

Методы .обратного .вызова

События

Строго .типизированный .наблюдатель

IObserver/IObservable

Обсуждение .паттерна .«Наблюдатель»

Выбор .варианта .реализации .«Наблюдателя»

Делегаты

События

Наблюдатель .в .виде .специализированного .интерфейса

Сколько .информации .передавать .наблюдателю

Наблюдатели .и .утечки .памяти

Применимость

Примеры .в . .NET .Framework

Глава 6. Паттерн «Посетитель» (Visitor)

Мотивация

Обсуждение

9Функциональная .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)

Мотивация

Обсуждение .паттерна .«Абстрактная .фабрика»

Проблема .курицы .и .яйца

Обобщенная .абстрактная .фабрика

10Применимость .паттерна .«Абстрактная .фабрика»

Примеры .в . .NET .Framework

Глава 10. Паттерн «Фабричный метод» (Factory Method)

Мотивация

Диаграмма .паттерна .«Фабричный .метод»

Классическая .реализация

Статический .фабричный .метод

Полиморфный .фабричный .метод

Варианты .реализации

Использование .делегатов .в .статической .фабрике

Обобщенные .фабрики

Обсуждение .паттерна .«Фабричный .метод»

Сокрытие .наследования

Устранение .наследования

Использование .Func .в .качестве .фабрики

Конструктор .vs . .фабричный .метод

Применимость .паттерна .«Фабричный .метод»

Применимость .классического .фабричного .метода

Применимость .полиморфного .фабричного .метода

Применимость .статического .фабричного .метода

Примеры .в . .NET .Framework

Глава 11. Паттерн «Строитель» (Builder)

Мотивация

Особенности .реализации .в . .NET

Использование .текучего .интерфейса

Методы .расширения

Обсуждение .паттерна .«Строитель»

Строго .типизированный .строитель

Создание .неизменяемых .объектов

Частичная .изменяемость

11Применимость

Примеры .в . .NET .Framework

Часть III. Структурные паттерныГлава 12. Паттерн «Адаптер» (Adapter)

Мотивация

Обсуждение .паттерна .«Адаптер»

Адаптер .классов .и .объектов

Адаптивный .рефакторинг

Языковые .адаптеры

Применимость

Примеры .в . .NET .Framework

Глава 13. Паттерн «Фасад» (Facade)

Мотивация

Обсуждение .паттерна .«Фасад»

Инкапсуляция .стороннего .кода

Повышение .уровня .абстракции

Применимость

Примеры .в . .NET .Framework

Глава 14. Паттерн «Декоратор» (Decorator)

Мотивация

Обсуждение .паттерна .«Декоратор»

Композиция .vs . .наследование

Инициализация .декораторов

Недостатки .декораторов

Генерация .декораторов

Применимость

Примеры .в . .NET .Framework

12Глава 15. Паттерн «Компоновщик» (Composite)

Мотивация

Обсуждение .паттерна .«Компоновщик»

Применимость

Примеры .в . .NET .Framework

Глава 16. Паттерн «Заместитель» (Proxy)

Мотивация

Обсуждение .паттерна .«Заместитель»

Прозрачный .удаленный .заместитель

Заместитель .vs . .декоратор

Виртуальный .заместитель .и .Lazy

Применимость

Примеры .в . .NET .Framework

Часть IV. Принципы проектированияГлава 17. Принцип единственной обязанности

Для .чего .нужен .SRP

Принцип .единственной .обязанности .на .практике

Типичные .примеры .нарушения .SRP

Выводы

Глава 18. Принцип «открыт/закрыт»

Путаница .с .определениями

Какую .проблему .призван .решить .принцип .«открыт/закрыт»

Принцип .«открыт/закрыт» .на .практике

Закрытость .интерфейсов

Открытость .поведения

Принцип .единственного .выбора

13Расширяемость: .объектно-ориентированный .и .функциональный .подходы

Типичные .примеры .нарушения .принципа .«открыт/закрыт»

Выводы

Глава 19. Принцип подстановки Лисков

Для .чего .нужен .принцип .подстановки .Лисков

Классический .пример .нарушения: .квадраты .и .прямоугольники

Принцип .подстановки .Лисков .и .контракты

О .сложностях .наследования .в .реальном .мире

Когда .наследования .бывает .слишком .мало

Принцип .подстановки .Лисков .на .практике

Типичные .примеры .нарушения .LSP

Выводы

Дополнительные .ссылки

Глава 20. Принцип разделения интерфейсов

Для .чего .нужен .принцип .разделения .интерфейса

SRP .vs . .ISP

Принцип .разделения .интерфейсов .на .практике

Типичные .примеры .нарушения .ISP

Выводы

Глава 21. Принцип инверсии зависимостей

Интерфейсы

Слои

Наблюдатели

Для .чего .нужен .принцип .инверсии .зависимостей

Остерегайтесь .неправильного .понимания .DIP

Тестируемость .решения .vs . .подрыв .инкапсуляции

Принцип .инверсии .зависимостей .на .практике

Примеры .нарушения .принципа .инверсии .зависимостей

Выводы

Дополнительные .ссылки

14Глава 22. Размышления о принципах проектирования

Использование .принципов .проектирования

Правильное .использование .принципов .проектирования

Антипринципы .проектирования

Заключение

Источники информации

Книги .о .дизайне .и .ООП

Статьи

Також ви можете залишити питанная або відгук про книгу: Паттерны проектирования на платформе .NET, Тепляков С. В.

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “Паттерны проектирования на платформе .NET, Тепляков С. В.”

Ваш адрес email не будет опубликован. Обязательные поля помечены *