Курс начинается с основ. Слушатели узнают, что такое паттерны проектирования и какие они бывают - порождающие, поведенческие и структурные. Здесь же рассматриваются фундаментальные принципы проектирования: ориентация на интерфейсы, принцип открытости/закрытости, принцип наименьших знаний и инверсия зависимостей. На практике разбираются паттерны Стратегия и Декоратор на примерах сортировки строк и работы с файлами в Java.
Модуль посвящен паттернам, которые помогают создавать объекты. Фабрика рассматривается на примере драйверов баз данных, а также ее разновидность - Абстрактная фабрика для работы с целыми семействами классов. Паттерн Одиночка изучается глубоко, с акцентом на безопасность в многопоточной среде и различными способами реализации.
Этот блок показывает, как сделать разные системы совместимыми. Паттерн Адаптер учит "переводить" интерфейсы одного класса на понятный другому. Фасад демонстрирует, как скрыть сложность системы за простым интерфейсом. Шаблонный метод раскрывает принцип построения каркасов, где алгоритм оставляет конкретные шаги на усмотрение подклассов.
Здесь рассматривается паттерн Итератор - как стандартный способ обхода коллекций без раскрытия их внутренней структуры. Показана разница между внешними и внутренними итераторами и их поддержка в языках программирования. Вторая часть модуля посвящена архитектурному паттерну Model-View-Controller, который фундаментально влияет на построение UI, на примере MediaPlayer.
Модуль о том, как объекты могут общаться между собой. Наблюдатель реализует механизм подписки и уведомления о событиях, что особенно важно в графических интерфейсах. Команда инкапсулирует запросы как объекты, что позволяет передавать их как аргументы, ставить в очередь или поддерживать отмену операций. Рассматривается связь этого паттерна с лямбда-функциями и потоками.
Компоновщик учит работать с иерархическими структурами, где объекты и их группы имеют общий интерфейс. Строитель поэтапно конструирует сложные объекты, отделяя конструирование от представления. Цепочка обязанностей позволяет передавать запросы по цепочке обработчиков, каждый из которых может его обработать или передать дальше.
Завершающий модуль охватывает паттерны для специфических ситуаций. Посетитель добавляет новые операции без изменения классов. Состояние меняет поведение объекта при изменении его состояния. Приспособленец экономит память через совместное использование объектов. Мост отделяет абстракцию от реализации. Также рассматриваются Прототип, Посредник, Заместитель и Хранитель для работы со сложными сценариями.
После завершения курса вы сможете разбираться в шаблонах проектирования и понимать, когда какой паттерн применять. Вы освоите более 20 популярных паттернов, включая Адаптер, Фабричный метод и Посетитель. Сможете применять архитектурный шаблон MVC и паттерны для оптимизации памяти. Это значительно улучшит качество вашего кода и сделает его более читабельным.
Курс включает практические занятия с проверкой домашних заданий. Доступен бесплатный видеокурс для лучшего усвоения материала. После завершения предусмотрено онлайн-тестирование и получение сертификата.