Inhalt | Abbildung | Source | OO-Designkurs | |||
|< | < | > | >| | Generated by CoCoDiL |
Im obigen Kapitel wird vom Interaktionsobjekt aus, der Befehl zum Erzeugen eines neuen Dokumentes ausgelöst. Der Erzeugen eines neuen Objekts findet in der Funktionskomponente statt
IKDokumentListe >> void activateCreateNewDokument(){ funktionskomponente.neuesDokument(). } |
Warum einfach wenn es auch kompliziert geht
IKDokumentListe >> void activateCreateNewDokument{ this.createNewDokumentCommand().execute(); } IKDokumentListe >> Command createNewDokumentCommand(){ // Erzeuge ein Command Objekt mit der Funktionskomponente als Wert der // Instanzvariable receiver Command commandObjekt := new CreateNewDokumentCommand(). commandObjekt.setReceiver(this.funktionskomponente()); return commandObjekt ; } CreateNewDokumentCommand >> void execute(){ receiver.neuesDokument(); } |
Nachteile der komplizierten Version:
Vorteile der komplizierten Version:
Eine Erweiterung des Command Patterns, ist das Command-Processor Pattern. Es wird u.a. für Undo's verwendet. Bei dem Command-Pattern sind i.a 5 Klassen beteiligt:
Hier das zugehörige Objektmodell:
Beispiel:Der Anwender hat in einem Text ein Wort selektiert, und möchte in dem Wort alle Buchstaben in Grossbuchstaben umwandeln. Im einzelnen passiert folgendes:
Bei einem Undo werden folgende Aktionen ausgelöst:
System of Pattern Command Processor |
Inhalt | Abbildung | Source | OO-Designkurs | |||
|< | < | > | >| | Generated by CoCoDiL |