Gibt es irgendwelche design-Muster zu vermeiden, die eine verschachtelte switch case?

Ich habe ähnliche Art von threads, Aber nicht sicher sind, wie Sie genau anzuwenden, die Lösung zu meinem Fall. Mein problem ist, dass ich eine Reihe von usecases können sagen, 'A','B','C',gibt Es bestimmte Befehle, die ich ausführen müssen, wenn der übergebene Eingabe(2 usecases sind die input) 2 von den aufgeführten usecases. zum Beispiel:

switch(input1)
{
case A:
break;
case B:
break;
case C:
break;
}

innerhalb der jeden Fall werde ich noch prüfen, auf Eingang 2,
so, der endgültige code Aussehen könnte

switch(input1)
{
case A:
{
switch(input2):
case B:
break;
case c:
break;
}
case B:
{
switch(input2):
case A:
break;
case c:
break;
}
....

}

Ich dachte an eine Karte von (paar -, Befehls -), und entfernen Sie diese switch-Case-Anweisungen, aber es ist eine alternative bessere Lösung oder design-problem, dieses problem zu lösen?

  • diese Frage kann hilfreich sein. stackoverflow.com/questions/126409/...
  • +1 für Polymorphismus in der verlinkten Antwort.
  • Diese "usecases", sind Sie eine Art von Staat? Also deine Klasse ist eine state-Maschine, die seinen Zustand ändert (input1) während der Ausführung?
  • ich habe nicht zu ändern, den Staat mit meiner Klasse auf der Basis der usecases, der Einfachheit halber , ich könnte sagen, dass wir darstellen können, ist der usecases durch einige const-strings.
  • Ok, was ich meinte, war: Ist das Verhalten der verschiedenen input2 Werte innerhalb eines use-case (Wert1) mehr eng aneinander gebunden? Wie: Ist es eine gute Idee, um Funktionen implementieren, pro use case zu handhaben, die den Wert input2? Und spezifischer: Können Sie sich überlappen? (Für einen bestimmten Wert von " input2, gibt es gleich Implementierungen unter verschiedenen Werte von input1?)
  • Sie dürfen die Funktionen aufrufen, die in einer switch-Anweisung.

InformationsquelleAutor user2063770 | 2013-02-12
Schreibe einen Kommentar