Java Reference
In-Depth Information
public void fuehreAus() //Definition der Methode fuehreAus()
{
licht.aus();
}
}
Durch den Client wird ein konkreter Befehl erstellt und in einem Objekt der Klasse
LichtSchalter abgespeichert. Durch den Aufruf der Methode aktivieren() des
Schalters wird die Ausführung des gespeicherten Befehls ausgelöst. Hier die Klasse
Client :
// Datei: Client.java
public class Client
{
public static void main (String[] args)
{
LichtSchalter schalter = new LichtSchalter();
LichtQuelle licht = new LichtQuelle();
IBefehl lichtAn = new LichtEinBefehl (licht);
IBefehl lichtAus = new LichtAusBefehl (licht);
schalter.speichereBefehl (lichtAn);
schalter.aktivieren();
schalter.speichereBefehl (lichtAus);
schalter.aktivieren();
}
}
Die Ausgabe des Programms ist:
Licht wurde eingeschaltet!
Licht wurde ausgeschaltet!
Im konkreten, vorliegenden Beispiel ruft der Client die Methode aktivieren() aus
Gründen der Einfachheit selbst auf. Beispielsweise könnte eine andere Aufrufer-Klas-
se, die eine Zeitschaltuhr implementiert, die Ausführung eines konkreten Befehls (z. B.
LichtEinBefehl ) zu einem bestimmten Zeitpunkt veranlassen. Das Licht könnte so
abends automatisch eingeschaltet und am nächsten Morgen wieder automatisch aus-
geschaltet werden.
4.10.4
Bewertung
4.10.4.1 Vorteile
Die folgenden Vorteile werden gesehen:
x Das Erzeugen eines Befehls und seine Ausführung sind zeitlich entkoppelt.
Search WWH ::




Custom Search