私はAdobe AIR用の小さなIRCクライアントに取り組んでいます、最初はこれらのうちのいくつかだけをサポートすることから始めましたが、switch ステートメントは悪い考えではないように思えました。でも、どんどんサポートしていくうちにswitch文が長くなって、ちょっと制御不能な感じがします。1 つの問題は、再利用できるように、低レベルの IRC 処理コードを独自のファイルに保持していたことです。すべてを 1 つのファイルにまとめたいと思います。もう 1 つの問題は、現在、switch ステートメントのコード ブロックがこの IRC クラスの一部であると見なされており、このステートメントが頻繁に使用されていることです。今変更を加えると大変な作業になり、リグレッションが発生します。唯一の問題は、長い switch ステートメントに対する私の嫌悪感です。それ以外の場合は、それが機能し、読みやすいことはわかっていますが、保守が実際に難しくなるわけではありません。しかし、それは非常に長いswitchステートメントです。また、switch ステートメントを含む関数も明らかに長いです。://
スイッチの代わりに私が時々行うことの 1 つは、スイッチが評価する値にちなんで名付けられた関数を定義することです。スイッチの代わりに:
switch ( val ) {
case: "alert":
alert( "yo" );
break;
}
メソッドがスコープ内に存在するかどうかを確認して実行します。
obj.alert = function ( ) {
alert( "yo" );
}
if ( val in obj && isFunction( obj[ val ] ) ) {
obj[ val ]( );
}
しかし、この場合も、リグレッションのリスクが高いと感じており、長い switch ステートメントを避けるためだけに努力する価値があるかどうかはわかりません。