Это видео не входит в основной цикл. В нём даётся краткое описание 23-х ключевых паттернов, описанных в книге «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», авторов которой прозвали “Gang of four”. Если вы уже изучали паттерны хотя бы поверхностно – можете смело пропускать урок: в нем нет ни практики, ни детального разбора.
Введение в Design Patterns
Первое видео из цикла объясняет, что такое паттерны проектирования, развенчивает основные мифы и максимально просто доносит главную идею.
Добавим, что паттерны разделяют еще на 3 основных группы по типу выполняемых задач:
- – создают новые классы или объекты. – отвечают за образование сложны структур. – отвечают за реализацию взаимодействия между объектами.
Читайте подробнее в наших статьях по ссылкам.
Singletone, Multione container
В этом видео на примерах популярных фреймворков yii2 и symfony вы познакомитесь с распространённым пораждающим паттерном Singleton, который гарантирует наличие только единственного экземпляра класса, а также частного случая паттерна Container – Multione container, объединяющего в себе несколько “одиночек”.
В качестве альтернативы примера из видео можно использовать Multione pool, который хранит в себе набор уже инициализированных “одиночек” и выполняет похожую задачу.
Dependency Injection
Третье видео – хорошая демонстрация внедрения зависимостей. Данный паттерн используется практически во всей современной разработке и часто вызывает недоумение у начинающих. Автор показывает использование паттерна и его более продвинутой версии DI Container на примерах yii2 и laravel.
С минусами, о которых говорит автор, трудно согласиться. DI стала необходимой частью любой серьезной разработки в первую очередь благодаря упрощению тестирования. Хотите вы или нет, но научиться читать код с DI придется, как бы трудно ни было в начале.
Observable и Observer
Обзор базовых паттернов событийно-ориентированного программирования, задача которых – генерировать и получать события. В качестве примера демонстрируется их использование в популярной и достаточно простой для понимания архитектуре MVC на базе всё того же yii2.