Описание
Паттерны проектирования на платформе .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. Размышления о принципах проектирования
Использование .принципов .проектирования
Правильное .использование .принципов .проектирования
Антипринципы .проектирования
Заключение
Источники информации
Книги .о .дизайне .и .ООП
Статьи
Отзывы
Отзывов пока нет.