Liskovsches Substitutionsprinzip: Unterschied zwischen den Versionen
aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
=Definition ( | =Definition (von W. Kowarschick)<ref>[[Kowarschick, W.: Multimedia-Programmierung]]</ref>= | ||
Eine [[Methode]] sollte nicht so überschrieben werden, dass sich ein Objekt einer [[Abgeleitete Klasse|abgeleiteten Klasse]] überraschend anders verhält, als man es aufgrund der Definition der Basisklasse erwarten würde. Mit anderen Worten: Methoden, die in abgeleiteten Klassen neu definiert werden, müssen alle [[Integritätsbedingung]]en (d.h. die Spezifikation) der Basisklasse beachten. | Eine [[Methode]] sollte nicht so überschrieben werden, dass sich ein Objekt einer [[Abgeleitete Klasse|abgeleiteten Klasse]] überraschend anders verhält, als man es aufgrund der Definition der Basisklasse erwarten würde. Mit anderen Worten: Methoden, die in abgeleiteten Klassen neu definiert werden, müssen alle [[Integritätsbedingung]]en (d.h. die Spezifikation) der Basisklasse beachten. | ||
= | =Originaldefinition (von Liskov und Wing)<ref>Barbara H. Liskov, Jeannette M. Wing: ''A Behavioral Notion of Subtyping'', [http://portal.acm.org/citation.cfm?id=197383 ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 16, No. 6, November 1994, Pages 1811-1841]</ref>= | ||
Subtype Requirement: Let Φ(x) be a property provable about objects x | Subtype Requirement: Let Φ(x) be a property provable about objects x | ||
of type T. Then Φ(y) should be true for objects y of type S where S is | of type T. Then Φ(y) should be true for objects y of type S where S is | ||
Zeile 15: | Zeile 15: | ||
=Siehe auch= | =Siehe auch= | ||
* [[Programmierprinzipien#Liskovsches_Substitutionsprinzip.5B2.5D.2C_LSP.2C_Ersetzbarkeitsprinzip.2C_Liskov_substitution_principle.5B3.5D|Programmierprinzipien]] | *[[Programmierprinzipien#Liskovsches_Substitutionsprinzip.5B2.5D.2C_LSP.2C_Ersetzbarkeitsprinzip.2C_Liskov_substitution_principle.5B3.5D|Programmierprinzipien]] | ||
[[Kategorie:Programmierung]] | [[Kategorie:Programmierung]] | ||
{{{{SITENAME}}-konformer Artikel}} | {{{{SITENAME}}-konformer Artikel}} |
Version vom 23. Februar 2011, 15:03 Uhr
Definition (von W. Kowarschick)[1]
Eine Methode sollte nicht so überschrieben werden, dass sich ein Objekt einer abgeleiteten Klasse überraschend anders verhält, als man es aufgrund der Definition der Basisklasse erwarten würde. Mit anderen Worten: Methoden, die in abgeleiteten Klassen neu definiert werden, müssen alle Integritätsbedingungen (d.h. die Spezifikation) der Basisklasse beachten.
Originaldefinition (von Liskov und Wing)[2]
Subtype Requirement: Let Φ(x) be a property provable about objects x of type T. Then Φ(y) should be true for objects y of type S where S is a subtype of T.
Übersetzung (von W. Kowarschick):
Subtyp-Bedingung: Es sei Φ(x) eine Eigenschaft, die für Objekte x vom Typ T beweisbar ist. Dann soll Φ(x) [ebenfalls] für Objekte y von Type S gelten,
wobei S ein Subtyp von T ist.
Quellen
- ↑ Kowarschick, W.: Multimedia-Programmierung
- ↑ Barbara H. Liskov, Jeannette M. Wing: A Behavioral Notion of Subtyping, ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 16, No. 6, November 1994, Pages 1811-1841
Siehe auch
Dieser Artikel ist GlossarWiki-konform.