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 (nach W. Kowrschick)<ref>[[Kowarschick, W.: Multimedia-Programmierung]]</ref>=
=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.


=Definition (Liskov, 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>=
=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

Siehe auch


Dieser Artikel ist GlossarWiki-konform.