Buchgenerator (deaktivieren)

Java Standard: Muster NullPattern

Aus Wikibooks

Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu Muster | One wikibook.svg Hoch zu Java Inhaltsverzeichnis | Wikibooks buchseite.svg Vor zu Singleton


[Bearbeiten] Null Muster

Implementiere einen leeren Algorithmus.(vgl. WikiBook Muster)

[Bearbeiten] Implementierung (1)

package de.bastie.eHunter.gui.action; 
import java.awt.event.ActionEvent; import javax.swing.Icon;
/** * Null Pattern Implementation * @author Bastie - Sebastian Ritter * @licence FDL für Wikibooks * @version 1.0 */ class DefaultMenuAction extends ModelDrivenAbstractAction { public AbstractMenuAction (final String text) { this (text, null); } public AbstractMenuAction (final String text, final Icon icon) { super (text, icon); } public void actionPerformed (final ActionEvent ignore) { } }
package de.bastie.eHunter.gui.action;
import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.Icon;
/** * Diese Klasse dient dazu für alle anderen Action Objekte * vordefinierte Methoden zur Verfügung zu stellen. Insbesondere * sollen diese Zugriff auf das zugrundeliegende BO haben. * * Die ~ wird hierbei als Descriptor für * den Mnemonic Key verwendet. * @author Bastie - Sebastian Ritter * @licence FDL für Wikibooks * @version 1.0 */ abstract class ModelDrivenAbstractAction extends AbstractAction { public ModelDrivenAbstractAction (final String text) { this (text, null); } public ModelDrivenAbstractAction (String menuText, final Icon icon) { super (menuText, icon); final int mnemonicKeyDescriptor = menuText.indexOf('~'); if (mnemonicKeyDescriptor != -1) { // Rausschneiden von ~ menuText = menuText.substring(0,mnemonicKeyDescriptor) .concat(menuText.substring(mnemonicKeyDescriptor+1)); this.putValue(Action.MNEMONIC_KEY, new Integer (menuText.charAt(mnemonicKeyDescriptor))); this.putValue(Action.NAME, menuText); } } }

[Bearbeiten] Erläuterungen

Das vorstehende Beispiel zeigt Dir das NullPattern anhand einer einfachen Implementation für Swing Action Objekte für Menüs. Die eigentlich abstrakte Methode

public void actionPerformed (final ActionEvent e) {}

Anmerkung (1): Als kleines Bonbon habe ich noch die Basisklasse hinzugefügt, welche eine einfache Möglichkeit der Steuerung des Mnemonic-Zeichens anbietet.

Anmerkung (2): Die eigentliche Initialisierung erfolgt bei mir über einen Reflection Mechanismus zusammen mit einen Klassenfabrik, so dass beide Klassen entsprechend auf default Sichtbarkeit eingeschränkt sind.

Anmerkung (3): Ich habe nicht den kompletten Quelltext hier dargestellt, da er zu umfangreich ist und dem Ziel der Erläuterung des Null Muster nicht hilft.


Wikibooks buchseite.svg Zurück zu Muster | One wikibook.svg Hoch zu Java Inhaltsverzeichnis | Wikibooks buchseite.svg Vor zu Singleton
Persönliche Werkzeuge