Принцип подстановки Лисков: различия между версиями
[отпатрулированная версия] | [отпатрулированная версия] |
Содержимое удалено Содержимое добавлено
м Bot: HTTP→HTTPS (v477) |
Kovani (обсуждение | вклад) викификация |
||
Строка 21:
== Проектирование по контракту ==
Принцип подстановки (замещения) Лисков имеет близкое отношение к методологии [[Контрактное программирование|контрактного программирования]], и ведёт к некоторым ограничениям на то, как контракты могут взаимодействовать с [[Наследование (программирование)|наследованием]]:
* [[Предусловие|Предусловия]] не могут быть усилены в подклассе.
* [[Постусловие|Постусловия]] не могут быть ослаблены в подклассе.
* Исторические ограничения (
Также принцип LSP подразумевает, что методы подкласса не могут генерировать никаких дополнительных [[Обработка исключений|исключений]], кроме тех, которые сами являются подклассами исключений, генерируемых методами надкласса. См. [[Ковариантность и контравариантность (программирование)|Ковариантность и контравариантность]] и [[Тип данных|типы данных]].
|