Marc Reichelt: Getter/Setter Methoden vs. properties

Beitrag lesen

Hallo molily,

Auch in JavaScript gilt: Der Status eines Objekts wird konsistent gehalten.

Was bedeutet das (für Nicht-Informatiker wie mich)?

Konsistenz im Sinne von OOP heißt:
Eine Klasse wird so geschrieben dass sie keinen fehlerhaften Zustand annehmen kann, wenn der Zustand über die Methoden geändert wird.

Das Beispiel "Spaceship" kann man noch erweitern, um zu zeigen wie dies gemeint ist.
Hier eine Auflistung beispielhafter Parameter eines Raumschiffs und deren erlaubte Werte:

speed       Gleitzahl, -LIGHTSPEED bis LIGHTSPEED
x           Ganzzahl, -MIN bis MAX
y           Ganzzahl, -MIN bis MAX
name        Name (String), minimal 1 Zeichen, maximal 42, erlaubte Zeichen: Buchstaben, Zahlen, Leerzeichen, ...

All diese Werte können über set-Methoden konsistent gehalten werden, sprich: Keiner der Werte wird zur Laufzeit einen fehlerhaften Wert erhalten, wenn die set-Methoden entsprechend geschrieben sind.

Die erlaubten Wertebereiche können sich außerdem im Laufe der Zeit ändern (beispielsweise sollen Raumschiffe in Version 2.0 des Spiels auch das max. 10fache der Lichtgeschwindigkeit annehmen dürfen).

Die set-Methoden könnten zudem nun noch bei fehlerhaften Eingaben Fehler produzieren, die dann vom aufrufenden Code abgefangen werden können.

So wird die Entwicklung effektiv in Kapseln unterteilt - und Fehler lassen sich einfacher finden und eliminieren.

Grüße

Marc Reichelt || http://www.marcreichelt.de/

--
panic("Oh boy, that early out of memory?");
        linux-2.2.16/arch/mips/mm/init.c
Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)