Нарушаю Liskov Substitution Principle на примере разработки фнкционала скидок для интернет магазина на PHP, а затем исправляю возникшее нарушение.
Принцип подстановки Барбары Лисков (Liskov Substitution Principle, LSP) является одним из пяти принципов SOLID. Формально он звучит так: "Пусть q(x) является свойством, верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T."
Это означает, что код, написанный для работы с базовым типом, должен продолжать работать с его подтипами, несмотря на то, что они добавляют новое поведение.
Энди Хант и Дэйв Томас сформулировали LSP так: "Клиенты должны иметь возможность использования подклассов через интерфейс базового класса, не замечая никаких различий".
Роберт Мартин сформулировал похожим образом: "Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом."
Рассмотрим примеры на практике!
Уроки, менторство: https://boosty.to/sashokgorshok
Telegram: https://t.me/alejandroyakovlev