Design Pattern Command

dummy2k

Mitglied
ich habe zum ersten Mal den Command Pattern benutzt. Ich frage mich aber, ob man nicht anstatt ne lange Wurst wie z.B.:

Code:
// auffüllen der möglichen Befehle
commandMap.put("task1", new Nachrichten()); 
commandMap.put("task2", new Veranstaltungen());
commandMap.put("task3", new Emails());
// usw.

// am Ende der Wurst
Command command = commandMap.get(task);
if(command != null)
      command.execute(); // interface, jedes Objekt hat diese Methode

nicht einfach den Ordner in einer Schleife auslesen kann, der die Dateien wie Nachrichten.java, Veranstaltungen.java usw. enthält. Spricht was dagegen? So könnte ich leicht Befehle erweitern, indem ich einfach eine neue Datei in den Ordner "reinkopiere", anstatt das ich jedesmal den HashMap zusätzlich erweitern muss. Danke!
 

mrBrown

Super-Moderator
Mitarbeiter
Je nach Umsetzung schränkt man sich damit ziemlich ein, da nur die im passenden Ordner liegenden Dateien benutzt werden können (abgesehen davon, dass Ordner im kompilierten Programm irrelevant sind, stattdessen würde man das package durchsuchen, und es keine java-Datein sind, sondern einfach Klassen).
Um neue hinzuzufügen, müsste man jedes mal neu compilieren, wenn man über put hinzufügt, kann man zur Laufzeit dynamisch hinzufügen.

Bei der Variante mit put bekommt man zusätzlich Typsicherheit beim kompilieren, wenn du die Klassen selbst lädst, musst du dich darum selbst kümmern.

Man kann aber durchaus beide Ansätze verbinden, nur das "automatische" Laden ist aber impraktikabel.
 

dummy2k

Mitglied
Je nach Umsetzung schränkt man sich damit ziemlich ein, da nur die im passenden Ordner liegenden Dateien benutzt werden können (abgesehen davon, dass Ordner im kompilierten Programm irrelevant sind, stattdessen würde man das package durchsuchen, und es keine java-Datein sind, sondern einfach Klassen).
Um neue hinzuzufügen, müsste man jedes mal neu compilieren, wenn man über put hinzufügt, kann man zur Laufzeit dynamisch hinzufügen.

Bei der Variante mit put bekommt man zusätzlich Typsicherheit beim kompilieren, wenn du die Klassen selbst lädst, musst du dich darum selbst kümmern.

Man kann aber durchaus beide Ansätze verbinden, nur das "automatische" Laden ist aber impraktikabel.
Danke, deine Argumente klingen vernünftig und daher werde ich es so lassen. Was mich aber noch interessieren würde, wie man mit "put" zur Laufzeit dynamisch hinzufügen könnte? Könntest du das bitte grob skizzieren oder Stichwörter geben, wo ich mich einlesen könnte? Ich habe keine Ahnung von "dynamisch zur Laufzeit hinzufügen". Hab zwar jetzt danach recherchiert, aber ich glaub nicht das du "Reflection" meinst, oder? Danke!
 

mrBrown

Super-Moderator
Mitarbeiter
Du kannst jederzeit die Map verändern aus andern Teilen des Programms, neue Objekte hinzufügen, austauschen...

Bei der anderen Variante hast du halt nur die, die beim Konpilieren in Ordner liegen.
Außerdem musst du die alle automatiert Initialisieren können, in den meisten Fällen hast du aber Abhängigkeiten, die du so ohne weiteres nicht auflösen kannst. Das musst du entweder per Hand oder über ein DI-Framework lösen, dann bist du aber nicht mehr nur bei "Klassen aus package laden", sondern deutlich darüber hinaus ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D was ist der vorteil vom Builder-design pattern? Java Basics - Anfänger-Themen 11
F Design pattern Java Basics - Anfänger-Themen 29
Tarrew Proxy Design-Pattern Java Basics - Anfänger-Themen 1
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
Rudolf OOP Übungen zu Design Pattern in Java Java Basics - Anfänger-Themen 6
R Welches Design pattern Java Basics - Anfänger-Themen 10
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
A Frage zum UML Design Java Basics - Anfänger-Themen 1
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
N design time vs build time vs compile time Java Basics - Anfänger-Themen 2
H Eclipse , Design-Modus, unvollständige Darstellung Java Basics - Anfänger-Themen 0
M LookandFeel Design Java Basics - Anfänger-Themen 4
M Erste Schritte Eclipse + design view Java Basics - Anfänger-Themen 3
J Design Patterns Java Basics - Anfänger-Themen 8
D Besseres Design Frage Java Basics - Anfänger-Themen 1
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
J MVC- Design Frage Java Basics - Anfänger-Themen 3
C Java Klassen Design? Java Basics - Anfänger-Themen 5
OnDemand Software-Design Java Basics - Anfänger-Themen 1
B Warum haben Java Programme ein anderes Design? Java Basics - Anfänger-Themen 5
S Singleton (Design Patterns) Java Basics - Anfänger-Themen 16
K Interface als Instanzvariable = gutes Design Java Basics - Anfänger-Themen 6
S Eclipse Design-Reiter fehlt Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
M Button mit eigenem Design Java Basics - Anfänger-Themen 6
S Gutes Design mit statischen oder Member-Methoden Java Basics - Anfänger-Themen 53
X Externer GUI Code verwenden / (Design Ansicht) Java Basics - Anfänger-Themen 3
B OOP Frage zu Klassen Design Java Basics - Anfänger-Themen 5
Hamstinator Design und Listener in verschiedenen Klassen Java Basics - Anfänger-Themen 6
J Methoden design Java Basics - Anfänger-Themen 3
hdi Design-Problem Java Basics - Anfänger-Themen 2
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
Q Listen - DefaultListModel trotz Design ueber GUI? Java Basics - Anfänger-Themen 10
B Java-Anwendung im Windows Design Java Basics - Anfänger-Themen 8
hdi Design-Frage: bin unzufrieden Java Basics - Anfänger-Themen 11
M code design Java Basics - Anfänger-Themen 14
M log4j design Java Basics - Anfänger-Themen 11
D Design Fragen Java Basics - Anfänger-Themen 5
M Design: Abfrage auf korrekte Eingabe Java Basics - Anfänger-Themen 4
W Design Problem Java Basics - Anfänger-Themen 7
T Wie wichtig ist Design Patterns in einer Firma? Java Basics - Anfänger-Themen 8
M Java Design Frage Java Basics - Anfänger-Themen 2
S log4j "Richtiges" Design Java Basics - Anfänger-Themen 4
D JButton - Design ändern Java Basics - Anfänger-Themen 8
S Frage zum Design der Vererbung (Kartendeck und Dupletten) Java Basics - Anfänger-Themen 12
S Design Frage Java Basics - Anfänger-Themen 5
W GoF-Pattern im Programmierer-Alltag Java Basics - Anfänger-Themen 113
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J Methoden Observer-Pattern mit Consumer und accept( ) Java Basics - Anfänger-Themen 6
Dimax Erste Schritte Pattern.matcher,die Besonderheiten. Java Basics - Anfänger-Themen 12
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
fLooojava MVC Pattern und Observer Pattern Java Basics - Anfänger-Themen 6
S Regex Pattern Java Basics - Anfänger-Themen 3
Z Pattern und Matcher substring zu String möglich? Java Basics - Anfänger-Themen 4
B Pattern für Email Liste Java Basics - Anfänger-Themen 3
J Builder Pattern implementieren Java Basics - Anfänger-Themen 3
M Methoden Pattern Matching Vokal Java Basics - Anfänger-Themen 2
agent47 Pattern split Java Basics - Anfänger-Themen 2
J MVC Pattern, mehrere Controller/Views/Models Java Basics - Anfänger-Themen 0
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
I Vertändnisfrage zu Prototype Pattern Java Basics - Anfänger-Themen 0
L Kompositum-Pattern Hilfe :O Java Basics - Anfänger-Themen 4
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
B Pattern Matching ohne Match-Methoden Java Basics - Anfänger-Themen 11
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
F Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen Java Basics - Anfänger-Themen 7
M MVC + Strategy Pattern Ansatz (mit Code) Java Basics - Anfänger-Themen 5
A Observer Pattern Problem Java Basics - Anfänger-Themen 15
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
S OOP Regex Pattern Java Basics - Anfänger-Themen 2
P Grundsatzfrage zu Decorator-Pattern Java Basics - Anfänger-Themen 6
L Pattern Matching Java Basics - Anfänger-Themen 3
L RegExp bzw Pattern in Java Java Basics - Anfänger-Themen 6
Helgon Observer Pattern - hasChanged() immer false Java Basics - Anfänger-Themen 10
R aktualisierung des View im MVC-Pattern Java Basics - Anfänger-Themen 5
M RegEx Pattern Matcher Java Basics - Anfänger-Themen 16
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
N Regexp Pattern & Matcher Problem Java Basics - Anfänger-Themen 4
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
B static und Pattern matching Java Basics - Anfänger-Themen 22
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
T Decorator Pattern Java Basics - Anfänger-Themen 7
A Pattern und Matcher Java Basics - Anfänger-Themen 9
T Frage zu Pattern/Matcher Java Basics - Anfänger-Themen 6
D Pattern in Midi-Sequencer Java Basics - Anfänger-Themen 2
V Frage zu Decorator-Pattern Java Basics - Anfänger-Themen 4
S OOP Factory Pattern Java Basics - Anfänger-Themen 2
C OOP Observer Pattern Java Basics - Anfänger-Themen 2
M Regex-Pattern Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
megachucky regex-Problem ( mit den Klassen Matcher / Pattern) --> XML prüfen Java Basics - Anfänger-Themen 11
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S Problem mit Pattern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben