Когда использовать наследование в ООП / Предпочитайте композицию наследованию
Присоединяйся к бесплатному 3-х дневному интенсиву, напиши 9 нейронных сетей без навыков программирования и получи знания о профессии будущего. Не забудь забрать бонус - вебинар «ChatGPT: создаем нейронку без единой строчки кода": https://neural-university.ru/lp_engineer_spock?utm_source=youtube&utm_medium=engineer_spock&utm_campaign=30052024 ************************************************ Подписывайтесь на ТГ-канал: https://t.me/engineerspock_it Подписывайтесь на YouTube-канал: https://www.youtube.com/@EngineerSpock Наши курсы: https://offer.engineerspock.com ************************************************ 00:00 Введение 00:55 Наследование моделирует отношение является или is-a 04:13 Низкая связанность и высокая связность / Low Coupling и High Cohesion 04:50 Проблемы наследования - высокая связанность / нарушение LSP 05:25 Примеры проблем с наследованием 07:09 Композиция против наследования 08:14 Древние питонисты и статическая типизация 09:43 Наследование для доступа к данным 10:00 Как часто я использовал наследование на практике / паттерны проектирования и наследование 10:43 Наследование, ReadonlyCollection и нарушение LSP 12:05 Костыль для решения проблемы 12:40 Иерархия классов в WPF 13:33 Советы при проектировании наследования / Итоги В этом видео мы рассмотрим основные аспекты объектно-ориентированного программирования (ООП) и подробнее остановимся на наследовании. Узнаем, почему наследование может вызывать проблемы и почему многие считают, что его использование может быть плохой практикой. Мы также разберем принцип подстановки Барбары Лисков (LSP) и его нарушения в контексте наследования. Мы обсудим: - Основы наследования в ООП. - Проблемы, возникающие при использовании наследования. - Композиция vs наследование: что выбрать? - Когда лучше использовать композицию вместо наследования. - уделим внимание наследованию в Python, рассмотрим практические примеры и разберем, как избежать распространенных ошибок. Присоединяйтесь, чтобы улучшить свои навыки программирования и научиться выбирать правильные подходы при разработке!