Zum Inhalt springen

Menüerzeugen


white.apple

Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von -Peace-
Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...