LSP
Принцип подстановки Барбары Лисков | Liskov Substitution Principle | LSP
Last updated
Was this helpful?
Принцип подстановки Барбары Лисков | Liskov Substitution Principle | LSP
Last updated
Was this helpful?
Наследующий класс должен дополнять (extend — расширять), а не изменять базовый.
Функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа, не зная об этом.
Tип S будет подтипом Т тогда и только тогда, когда каждому объекту oS типа S соответствует некий объект objectT типа T таким образом, что для всех программ P, реализованных в терминах T, поведение P не будет меняться, если objectT заменить на oS.
Более простыми словами можно сказать, что поведение наследуемых классов не должно противоречить поведению, заданному базовым классом, то есть поведение наследуемых классов должно быть ожидаемым для кода, использующего переменную базового типа.
Изначально LSP рассматривался как руководство по использованию наследования в ООП. Но со временем принцип приобрел более широкое применение - как принцип проектирования программных систем. Он стал распространяться на интерфейсы и реализации.