Java Reference
In-Depth Information
public void personErkannt();
}
Befindet sich eine Alarmanlage im konkreten Zustand AlarmanlageAktiv , so soll
beim Erkennen einer Person (Aufruf der Methode personErkannt() ) ein akustischer
Alarm generiert werden:
// Datei: AlarmanlageAktiv.java
// Beschreibt das Verhalten der Alarmanlage im Zustand
// AlarmanlageAktiv
public class AlarmanlageAktiv implements IZustandAlarmanlage
{
// Sofern eine Person erkannt wurde, ein akustisches Signal
// ausgeben.
public void personErkannt()
{
System.out.println ("RING RING");
}
}
Im konkreten Zustand AlarmanlageInaktiv hingegen soll eine Alarmanlage keinen
akustischen Alarm generieren:
// Datei: AlarmanlageInaktiv.java
// Beschreibt das Verhalten der Alarmanlage im Zustand
// AlarmanlageInaktiv
public class AlarmanlageInaktiv implements IZustandAlarmanlage
{
// Sofern eine Person erkannt wurde, KEIN akustisches Signal
// ausgeben, da dies im normalen Geschaeftsbetrieb nur stoerend
// waere.
public void personErkannt()
{
System.out.println ("Ruhig bleiben.");
}
}
Die Klasse Alarmanlage definiert, wie die Alarmanlage von außen aufgerufen wer-
den kann. Sie entspricht der Kontextklasse. Wird die Methode personErkannt() der
Klasse Alarmanlage aufgerufen, so wird der Aufruf an den aktuellen konkreten Zu-
stand weitergeleitet. Mit Hilfe der Methoden anschalten() und ausschalten()
wird eine Zustandsänderung durchgeführt. Wie im Zustandsdiagramm in Bild 4-44 zu
sehen ist, muss beim Erkennen einer Person kein Zustandswechsel erfolgen. Nach
dem Zustandsmuster wird aber die Reaktion auf dieses Ereignis an das aktuelle Zu-
standsobjekt delegiert. Hier die Klasse Alarmanlage :
// Datei: Alarmanlage.java
// Kontext, ueber den die Alarmanlage gesteuert wird
public class Alarmanlage
{
IZustandAlarmanlage aktiv = new AlarmanlageAktiv();
IZustandAlarmanlage inaktiv = new AlarmanlageInaktiv();
IZustandAlarmanlage zustand = null;
Search WWH ::




Custom Search