principles:liskov_substitution_principle
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
principles:liskov_substitution_principle [2021-09-02 10:49] – old revision restored (2021-05-11 22:04) 65.21.179.175 | principles:liskov_substitution_principle [2021-09-02 18:26] – old revision restored (2021-05-11 22:03) 65.21.179.175 | ||
---|---|---|---|
Line 6: | Line 6: | ||
===== Context ===== | ===== Context ===== | ||
/* fill in contexts here: */ | /* fill in contexts here: */ | ||
- | * [[contexts: | + | * [[contexts: |
+ | * [[contexts: | ||
Line 12: | Line 13: | ||
> " | > " | ||
+ | |||
===== Description ===== | ===== Description ===== | ||
+ | Object-oriented programming languages allow to derive subtypes from base types and subtype polymorphism allows to pass an object of a subtype where ever an object of the supertype is specified. Suppose '' | ||
- | ===== Rationale ===== | + | But the programming language does not enforce that the subtype also behaves like the supertype. Method '' |
+ | |||
+ | |||
+ | ===== Rationale ===== | ||
+ | |||
+ | Let '' | ||
===== Strategies ===== | ===== Strategies ===== | ||
Line 34: | Line 42: | ||
===== Origin ===== | ===== Origin ===== | ||
- | Barbara Liskov: //[[http://portal.acm.org/ | + | Barbara Liskov: //[[http://citeseerx.ist.psu.edu/ |
===== Evidence ===== | ===== Evidence ===== | ||
/* Comment out what is not applicable and explain the rest: */ | /* Comment out what is not applicable and explain the rest: */ | ||
- | /* | + | |
- | * [[wiki: | + | /* * [[wiki: |
- | * [[wiki: | + | |
- | * [[wiki: | + | * [[wiki: |
- | * [[wiki: | + | * [[wiki: |
- | */ | + | |
+ | /* * [[wiki: | ||
===== Relations to Other Principles ===== | ===== Relations to Other Principles ===== | ||
Line 58: | Line 67: | ||
==== Complementary Principles ==== | ==== Complementary Principles ==== | ||
- | | + | * [[Model Principle]] (MP): MP demands inheritance relations to resemble an " |
- | * [[Invariant Avoidance Principle]] FIXME | + | |
- | | + | |
* [[Principle of Separate Understandability]] (PSU): When building inheritance hierarchies, | * [[Principle of Separate Understandability]] (PSU): When building inheritance hierarchies, | ||
Line 69: | Line 76: | ||
- | ===== Example | + | ===== Examples |
Line 85: | Line 92: | ||
* [[wiki> | * [[wiki> | ||
* [[wp> | * [[wp> | ||
+ | * Barbara H. Liskov , Jeanette M. Wing: // | ||
+ | * Barbara H. Liskov , Jeanette M. Wing: // |
principles/liskov_substitution_principle.txt · Last modified: 2021-10-18 21:50 by christian