SOLID принципы # 5 LSP - Liskov Substituion Principle Часть 2 Принцип подстановки Лисков
************************************************
Соцсети:
Telegram:
YouTube: @EngineerSpock
Дзен:
VK:
************************************************
НАШ САЙТ И КУРСЫ:
Поддержать:
************************************************
СЕРВИСЫ И БРЕНДЫ, которые я люблю и которыми пользуюсь сам:
Адресная ПОМОЩЬ пожилым и больным детям, ссылка для смартфонов:
Бизнес в Альфа-Банке:
Биржевой дракон - сервис автоматической торговли криптой для РИСКОВОЙ части инвестиционного портфеля:
Почитать их ТГ-канал:
Для оформления подписки на их сервис:
- писать сюда и назвать кодовое слово “DragonElias“
************************************************
SOLID принципы - это большАя часть современной теории ООП (объектно-ориентированного программирования). Впервые сам термин предложил дядя Боб (Uncle Bob), хотя основы для выведения принципов были известны до него и разбирались, например, в известном труде Бертрана Мейера (“Объектно-ориентированное конструирование программных систем“).
SOLID расшифровывается так:
S - Single Responsibility Principle (SRP) - Принцип единственной ответственности
O - Open Closed Principle (OCP) - Принцип открытости/закрытости
L - Liskov Substitution Principles (LSP) - Принцип подстановки Барбары Лисков
I - Interface Segregation Principle (ISP) - Принцип разделения интерфейса
D - Dependency Inversion Principle (DIP) - Принцип инверсии зависимости
Следование принципам SOLID в программировании имеет огромную роль с точки зрения написания чистого кода и как следствие максимизации простоты поддержки кода.
В этом выпуске мы поговорим об LSP - Liskov Substitution Principle или Принцип подстановки Барбары Лисков. Обсудим частые запахи нарушения LSP и посмотрим на пример нарушения и на то как провести рефакторинг, исправляющий нарушение принципа. Поговорим о контрактах кода: предусловиях и постусловиях.
00:00 Введение
00:50 Вариантность / Ковариантность / Контравариантность
01:37 Ковариантность
02:06 IN / OUT в C#
03:10 ICollection и нарушение LSP
05:00 Нисходящие преобразования типов - downcasts запах нарушения LSP
06:31 Итоги по запахам нарушения LSP