docjunior.de
News
20.03.2013
Habe einen UART auf dem Tiny25 gebraucht. Gab keinen. Hab mir selber einen gebaut.

14.09.2011
Ich habe mich entschieden euch ein Geheimnis zu verraten: Ich hab ein Buch geschrieben: Mikrocontroller in Kürze

Menu
zurück
Gästebuch
eM@il
Sitemap
Logindaten
Benutzername

Passwort


Sie sind der
38438. Besucher
home/ Programmierung/ Java/ Das Command-Pattern/
 
Index    Einleitung
   Wie geht das
   Die Command-Klasse
   Was das bringt
   Das Undoable-Command
   Weitere Erlaeuterungen
   Der Download

Einleitung Das Command Pattern ist eines der simpleren Design Pattern der GoF und trotzdem sehr mächtig.
Es ermöglicht dem Entwickler zum Beispiel, schnell und sicher eine undo-Funktionalität zu realisieren.


Wie geht das Das Command Pattern beschreibt kurz gesagt eine Klasse, die dazu dient, irgendetwas auszuführen.

Das sieht dann in ungefähr so aus:


Die Command-Klasse +-------------+
|   Command   |
+-------------+
+-------------+
| +run():void |
+-------------+



Was das bringt Was bringt einem das?
Man kann in einer Anwendung alle auszuführenden Aufgaben kanalisieren und ggf. auch loggen. Jaa, das macht erstmal ein wenig Aufwand..

Der Kick ist aber, dass man sich in jedem Command merken kann, was dieses Command tat.
Jetzt kann man beispielsweise für die Änderung der Adresse einer Person merken, wie diese vorher ausgesehen hatte. Im einfachsten Falle sieht das so aus:


Das Undoable-Command +---------------------+
|   UndoableCommand   |
+---------------------+
+---------------------+
| +init(Context):void |
| +run():void         |
| +undoCommand():void |
+---------------------+
         ^
         |
         |
+---------------------+
|     AlterPerson     |
+---------------------+



Weitere Erlaeuterungen Wie man hier erkennen kann, habe ich noch zwei Methoden hinzugefügt.

Die Methode init hat nun folgende Aufgaben:
erstens: Sie bekommt über den Context, der im besten Falle ein Datenobjekt oder eine entsprechende Hierarchie ist die Information, wo denn die Änderung stattzufinden hat.
zweitens: Sie fragt, beispielsweise über einen Dialog ab, worin die Änderung besteht
drittens: Sie speichert sich sowohl die "Alt-Daten", als auch die neuen Informationen

Das Kommando wird jetzt augeführt und auf einen Stack gelegt.
Über eine gesonderte Funktion, ich nenne sie profan undo, kann man jetzt dieses Command jederzeit vom Stack holen (bitte aber auch wirklich als LiFo-Speicher!) und wieder Rückgängig machen.


Der Download Der Download - Ich habe eine kleine Package geschrieben, die einen solchen Stack zur Verfügung stellt nline stellen.
Der Download beinhaltet meinen Command-Stack.
Javadoc und Sourcen sind natürlich enthalten.


cmsJr by Jens Rapp, 2006 - 2008