Ja, also im Grunde ein Objekt zu machen, das das Verhalten und andere Informationen einkapselt, die benötigt werden, wenn eine Aktion stattfindet, kann als die Verwendung der angesehen werden.
Der oben verlinkte Wikipedia-Artikel verwendet die Schnittstelle Action
als Beispiel für das Befehlsmuster in Swing. Die Action
Schnittstelle ist eine Subschnittstelle von ActionListener
, so dass eine Klasse, die Action
implementiert, die Methode actionPerformed
implementieren muss.
Daher kapselt eine Klasse, die Action
implementiert, einige Operationen, die ausgeführt werden, wenn eine Aktion auftritt. Und diese Klasse selbst kann dem Befehlsmuster folgen.
Wenn es um die Implementierung geht, kann eine AbstractAction
im Allgemeinen einfacher zu verwenden als die Implementierung Action
, da es mehrere Methoden hat, die überschrieben werden müssen. Ein Beispiel AbstractAction
kann mit sein:
class MySpecialAction extends AbstractAction {
@Override
public void actionPerformed(ActionEvent e) {
// Perform operations.
}
}
Die MySpecialAction
ist ein Befehlsmusterobjekt - es das Verhalten hat es ausstellen muss, wenn eine Aktion stattfindet. Wenn die obige Klasse instanziiert wird, könnte man versuchen, die folgenden Schritte aus:
MySpecialAction action = new MySpecialAction("Special Action", mySpecialIcon);
Dann kann die Aktion auf mehrere Komponenten registriert werden, wie JButton
s, JMenuItem
s und so. In jedem Fall wird die gleiche MySpecialAction
Objekt genannt:
JMenuItem specialMenuItem = new JMenuItem(action);
/* ... */
JButton b = new JButton(action);
In beiden Fällen die Aktion, die mit jeder Komponente, die Taste und den Menüpunkt finden Sie in der gleichen MySpecialAction
Aktionsobjekt oder Befehl zugeordnet ist. Wie wir sehen können, funktioniert das Objekt MySpecialAction
als ein Objekt, das dem Befehlsmuster folgt, da es eine Aktion kapselt, die ausgeführt werden soll, wenn eine Aktion stattfindet.
Thx. War sehr hilfreich :) –
Link ist runter .... – KJW
Seite Link ist runter – jawath