Skip to content

Latest commit

 

History

History
23 lines (11 loc) · 1.9 KB

Liskov_Substitution_principle.md

File metadata and controls

23 lines (11 loc) · 1.9 KB

Liskov Substitution Principle

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

  • Пусть q(x) является свойством, верным относительно объектов x некоторого типа T. Тогда q(y) также должно быть верным для объектов y типа S, где S является подтипом типа T.

или

  • Наследующий класс должен дополнять, а не замещать поведение базового класса.

или

  • Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом.

Замещения - если S является подтипом T, тогда объекты типа T в программе могут быть замещены объектами типа S без каких-либо изменений желательных свойств этой программы.

Более простыми словами можно сказать, что поведение наследуемых классов не должно противоречить поведению, заданному базовым классом, то есть поведение наследуемых классов должно быть ожидаемым для кода, использующего переменную базового типа.

«Подкласс не должен требовать от вызывающего кода больше, чем базовый класс, и не должен предоставлять вызывающему коду меньше, чем базовый класс» (Саттер и Александреску)