Es gibt eine ganze a few of IRC server codesWäre es lächerlich, eine Switch-Anweisung zu verwenden, um irc-Servercodes zu behandeln?
ich auf einem kleinen IRC client for Adobe AIR arbeite, und ich begann, indem nur ein paar von diesen zunächst zu unterstützen und dann eine switch-Anweisung schien nicht wie eine schlechte Idee. Aber wie ich mehr und mehr unterstütze, wird die switch-Anweisung länger und es fühlt sich an, als wäre sie ein wenig außer Kontrolle geraten. Ein Problem ist, dass ich den Low-Level-IRC-Code in einer Datei selbst gespeichert habe, damit er wiederverwendet werden kann. Ich möchte alles in einer Datei behalten. Ein weiteres Problem ist, dass Codeblöcke in den switch-Anweisungen derzeit annehmen, dass sie Teil dieser IRC-Klasse sind, und dass diese Anweisung häufig verwendet wird. Änderungen vorzunehmen wäre eine Menge Arbeit und würde Regressionen auslösen. Das einzige Problem ist wirklich meine Abneigung für eine lange Switch-Anweisung, sonst weißt du, dass es funktioniert, und es ist leicht zu lesen, aber nicht wirklich schwieriger zu pflegen. Aber es ist so eine lange Switch-Aussage. Und die Funktion, die die switch-Anweisung enthält, ist natürlich auch lang. : //
Eine Sache, die ich manchmal anstelle eines Schalters mache, ist, dass ich Funktionen definiere, die nach dem Wert benannt werden, den der Schalter bewertet. Anstelle eines Schalters:
switch (val) {
case: "alert":
alert("yo");
break;
}
ich überprüfen, um zu sehen, ob ein Verfahren in Umfang vorhanden ist, und führen Sie es aus:
obj.alert = function () {
alert("yo");
}
if (val in obj && isFunction(obj[ val ])) {
obj[ val ]();
}
Aber auch in diesem Fall, dass ich das Gefühl habe, wie es in Regressionen ein hohes Risiko ist und Ich bin mir nicht sicher, ob es die Mühe wert ist, nur um zu vermeiden, dass es wegen seiner Länge eine lange Switch-Anweisung gibt.
Weil Sie dann jedes Mal, wenn Sie eine Instanz dieser IRC-Klasse erstellen, eine ganze Reihe von Funktionen immer wieder deklarieren, nur weil ein Switch vorhanden ist zu lang. Beachten Sie, dass Sie die Funktionen nur einmal für alle Instanzen deklarieren, wenn Sie das Prototypobjekt zum Hinzufügen von Funktionen verwenden. –
Aber meine Frage ist wirklich, sollte ich einen Schalter verwenden. Also ist deine Antwort nein? Ich sollte nicht? Ich sollte eine Neufassung riskieren? –
Ich denke, es wäre einfacher, einige Teile neu zu schreiben, als zu versuchen, persönlich eine riesige Schalteraussage aufrechtzuerhalten. Ich weiß nicht wie es dir geht, aber ich hasse es das zu behaupten. –