ООП — тяжело формализуемое понятие, у которого очень много аспектов. В разные времена под ООП понимали и до сих пор понимают разные вещи. Существует как минимум два вида ООП: одно сформулированное Аланом Кеем, создателем языка SmallTalk, и другое — то, которое про полиморфизм, наследование и инкапсуляцию (Гради Буч). В современном мире обычно под ООП имеют в виду второе, хотя первое живет и здравствует во многих языках. Но даже когда мы говорим про второй вид ООП, все равно разные языки делают акцент на разные возможности. То, что в одних языках считается признаком настоящего ООП, в других неприемлемо.
Если попытаться как-то обобщить и найти самое фундаментальное — то, чем обладают все ООП-языки (по Бучу), то скорее всего общей точкой соприкосновения окажется полиморфизм подтипов.
Полиморфизм подтипов, пожалуй, самая важная отличительная черта современного объектно-ориентированного программирования. Бенджамин Пирс. Автор книги «Теория типов в языках программирования»
В этом курсе мы подробно рассмотрим полиморфизм, механизмы его реализации и, самое главное, научимся правильно его применять. Основные темы данного курса:
- Виды полиморфизма: подтипов и параметрический
- Диспетчеризация и ее виды
- Инверсия зависимостей, а с ней и инъекция
- DI-контейнер
- SOLID (SRP, OCP, LSP, ISR, DIP)
Кроме того, мы познакомимся с понятием «шаблоны проектирования». Разберем их влияние на структуру кода и познакомимся с некоторыми популярными:
- Null Object
- Strategy
- Factory
Поговорим о том, когда полиморфизм необходим, а когда он не нужен или даже вреден. Познакомимся с несколькими техниками, позволяющими получить полиморфное поведение без использования объектов. Для этого рассмотрим различные виды диспетчеризации.
Как подготовиться к этому курсу
Этот курс предполагает, что студент уже уверенно владеет синтаксисом и методами работы с функциями и объектами, а также имеет базовое представление об ООП в JS. Если у вас возникнут сложности с этими темами, рекомендуем пройти эти курсы на Хекслете:
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.