Принцип подстановки Барбары Лисков (SOLID, PHP, LSP)

Опубликовано: 18 Ноябрь 2024
на канале: Александр Яковлев - PHP
1,415
86

Нарушаю 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