Download PHP - Endlich objektorientiert - OO- und UML

Transcript
Realisierung von Klassengeflechten
public function getZustand(){
switch($this->zustand){
case 0:
return 'initialisiert'; break;
case 1:
return 'reserviert'; break;
case 2:
return 'gebucht'; break;
case 3:
return 'storniert'; break;
default:
return 'FEHLER: Ungültiger Zustand!'; break;
}
}
public function reservieren(){
if ($this->zustand!=0) return FALSE;
$this->zustand=1; // reserviert
return TRUE;
}
public function stornieren(){
if ($this->zustand!=1) return FALSE;
$this->zustand=3; // storniert
return TRUE;
}
public function buchen(){
if ($this->zustand!=1) return FALSE;
// es ist Zufall, ob die Buchung funktioniert...
srand(microtime()*1000000);
$zufall=rand(0,2);
if ($zufall>1){
$this->zustand=3; // gebucht
}
else{
$this->zustand=2; // storniert
}
return TRUE;
}
Listing 4.51: Die Interfaceimplementerung und Umsetzung des Zustandsautomaten (Forts.)
PHP – Endlich objektorientiert
277