1.5 KiB
Vertragsmodell
Definiert das Verhältnis zwischen Klient und Dienstleister.
Ein Dienstleister kann Vorbedingungen für eine Dienstleistungen definieren. Der Klient kann dann korrekte Ergebnisse erwarten, solange er die Vorbedingungen einhält.
Verträge im Vertragsmodell konzentrieren sich immer auf die Operationen einer Klasse.
In PM2 konzentrieren wir uns vor allem auf die Vorbedingungen.
Assertions
Assertions sind die Umsetzung von Teilen des Vertragsmodells in Java.
int wert = 1;
assert wert < 5 : "wert muss kleiner fünf sein";
// ausgelöst, wenn Condition(wert < 5) nicht gilt.
Wird eine Assertion ausgelöst, dann wird das Programm beendet.
Achtung: assert
muss enabled werden
Aufgaben
-
Gegeben ist eine Methode
int getTriangleArea(int a, int b, int c)
, die die Fläche eines Dreiecks berechnet. Wie würde man sicherstellen, dassa
undb
kleiner sind als die Hypothenusec
?-
assert c > b && c > a : "Die Hypothenuse darf nicht kürzer als die beiden Schenkel sein."
-
-
Wie würde man überprüfen ob ein String
input
leer oder gleichnull
ist?-
assert input != null && !input.isEmpty() : "Der String darf nicht null oder leer sein";
-
-
Ergänze die Methoden
damage
undfeed
um eine Implementation und sinnvolle Überprüfungen des Vertragsmodells.