Паттерны проектирования
Уроки с примерами кода; тему можно сразу закрепить вопросами в тренажёре.
Материалы открываются после регистрации на Free.
Уроки по модулям
Что такое паттерны и когда они вредят
2 урокаПаттерн проектирования — это не код для копирования, а имя и проверенное решение для повторяющейся задачи проектирования. Модуль вводит понятие паттерна, делит каталог на три категории по назначению (порождающие, структурные, поведенческие) и сразу ставит границу: паттерны служат поддерживаемости, а применённые без задачи дают переусложнение.
- Что такое паттерн проектирования
- Переусложнение и антипаттерны
Порождающие паттерны
3 урокаПорождающие паттерны отвечают за то, как создаются объекты: они отделяют код, которому нужен объект, от кода, который решает, какой именно объект создать и как. Модуль разбирает фабрики (вынос создания за интерфейс), строитель (пошаговая сборка сложного объекта) и одиночку (единственный экземпляр) — с его компромиссами и причиной, по которой его часто заменяют DI.
- Фабричный метод и абстрактная фабрика
- Строитель (Builder)
- Одиночка (Singleton)
Структурные паттерны
4 урокаСтруктурные паттерны отвечают за то, как объекты и классы соединяются в более крупные структуры, оставаясь гибкими. Модуль разбирает адаптер (совместить несовместимые интерфейсы), декоратор (добавить поведение, оборачивая объект), фасад (простой вход в сложную подсистему) и заместитель (контролировать доступ к объекту) — и показывает, как у близких по форме паттернов разное намерение.
- Адаптер (Adapter)
- Декоратор (Decorator)
- Фасад (Facade)
- Заместитель (Proxy)
Поведенческие паттерны
6 уроковПоведенческие паттерны отвечают за то, как объекты взаимодействуют и распределяют между собой обязанности. Модуль разбирает самые востребованные: стратегию (взаимозаменяемые алгоритмы), наблюдатель (оповещение подписчиков), команду (запрос как объект), шаблонный метод (скелет алгоритма), цепочку обязанностей (конвейер обработчиков) и состояние (поведение по состоянию).
- Стратегия (Strategy)
- Наблюдатель (Observer)
- Команда (Command)
- Шаблонный метод (Template Method)
- Цепочка обязанностей (Chain of Responsibility)
- Состояние (State)
О курсе
Классические паттерны проектирования как общий язык для повторяющихся задач: что такое паттерн и когда он вреден, порождающие паттерны (создание объектов), структурные (композиция объектов) и поведенческие (взаимодействие объектов). Каждый паттерн разбирается как решение конкретной проблемы и как компромисс с ценой — а не приём, который надо применять везде. Примеры на C#; сами паттерны языко-нейтральны и опираются на принципы ООП и SOLID.