white.apple Geschrieben 25. September 2008 Geschrieben 25. September 2008 Hallo, ich schreibe gerade ein Kommandozeilenprogramm. Dabei benutze ich das StrategyMuster zur Auswahl verschiedener Algorithmen. Um den entsprechenden Kontext zu setzen, benutze ich eine Menü, die aus 2 Schritten besteht. Erst wählt man eine gröbere Beschreibung dessen, was man tun will(nennen wir es Aufgabe), danach präzisiert man das noch(Unteraufgabe). Im Moment werden die As und Us in einer .ini-Datei abgespeichert, die so aussieht: A1 A2 *U1 *U5 A3 *U2 ... d.h. die jeweilige A und dadrunter mit Stern am Anfang der Zeile markiert die dazugehörigen Us. Ich würde es aber lieber in irgendeiner sinnvollen Weise im Code programmieren. Ich könnte mir vorstellen, die einzelnen As/Us einfach als Strings (ggf. internationalisiert) als Variablen abzulegen und... genau... was dann? Könnte man eine Methode schreiben, die aus einer Klasse alle finalen 'Strings' nimmt und sie in (z.B.) eine Liste packt? Wie könnte ich die Struktur nachbilden? Wie liesse sich sowas noch einigermaßen generisch halten(im Sinne: wie könnte ich ohne weiteres die As/Us austauschen/ergänzen)? Ich hoffe, mein Problem klar dargestellt zu haben... und freu mich über jeden Vorschlag! Zitieren
Youser Geschrieben 25. September 2008 Geschrieben 25. September 2008 klingt auf den ersten Blick nicht sonderlich spektakulär. Warum nimmst du nicht einfach n mehrdimensionales Array. In der einen Dimension speicherst du die As und in der anderen dimension die zugehörigen bs ? Oder du speicherst einfach Arrays in nem Array ? Quick and Dirty könnte mans auch einfach hart mit ein paar if-else-blöcken coden ... ne schicke OO-Lösung gibts sicher auch, aber ich checke dein Vorhaben nciht ganz. Daher lohnt sich das Spekulieren da nicht. Zitieren
white.apple Geschrieben 25. September 2008 Autor Geschrieben 25. September 2008 Ich hätte gern eine Struktur, die einen (einfachen/mehrfachdim) Array 'alleine' aus einer anderen Klasse füllt. Zum Beispiel. (Kann mir vorstellen, dass man es vllt anders besser macht...) Und ich würde es gerne beim Überprüfen um welche Bs es sich handelt die if-else durch "irgendwas" ersetzen Zitieren
flashpixx Geschrieben 25. September 2008 Geschrieben 25. September 2008 Das ist doch ein Baum, da bietet sich doch XML an und damit wäre das ganze zu internationalisieren auch kein Problem. Lesen kannst Du die Einträge dann via XPATH <xml> <language value="deutsch"> <menu name="aufgabe 1"> <menu name="untermenü 1.1"/> </menu> <menu name="aufgabe 2"/> </language> <language value="english"> .... HTH Phil Zitieren
white.apple Geschrieben 25. September 2008 Autor Geschrieben 25. September 2008 flashpixx, natürlich hast du Recht und xml ist auch so ziemlich das Erste, woran ich dachte. Gewünscht ist aber eine reine Java-Lösung Zitieren
flashpixx Geschrieben 25. September 2008 Geschrieben 25. September 2008 xml ist auch so ziemlich das Erste, woran ich dachte. Gewünscht ist aber eine reine Java-Lösung Was hat XML mit Java zu tun? Es bleibt doch eine Java Lösung. Du hast eben nur eine Datei wo die Information drin stehen. Okay, du kannst auch "faul" sein und die XML Datei in einen String in Java einbauen und dann direkt verarbeiten, aber die externe Datei ist eleganter Phil Zitieren
-Peace- Geschrieben 30. September 2008 Geschrieben 30. September 2008 (bearbeitet) Wäre nicht das Compsite muster das was du brauchst? Wenn du lange if-else Blöcke ersetzten willst dann hilft meist auch das State-Muster! Ich kann mir leider auch nicht genau vorstellen wie du das haben willst aber die Java Swing-Komponenten sind Baumartig aufgebaut und diese folgen alle dem Composite-Muster. Mit dem State-Muster verlagerst du die "arbeit" in des Zustandsobjekt selbst... Vielleicht hilft dir das weiter Bearbeitet 30. September 2008 von -Peace- Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.