有不少IRC服务器代码
我正在为 Adobe AIR 开发一个小型 IRC 客户端,我一开始只支持其中的几个,然后一个 switch 语句似乎不是一个坏主意。但是随着我越来越支持,switch语句越来越长,感觉有点失控了。一个问题是我将低级 IRC 处理代码单独保存在一个文件中,以便可以重复使用。我想将所有内容保存在一个文件中。另一个问题是 switch 语句中的代码块目前假定是这个 IRC 类的一部分,并且经常使用这个语句。现在进行更改将需要大量工作并引入回归。唯一的问题是我不喜欢长的 switch 语句,否则你知道它是有效的,而且它很容易阅读,但并没有真正使它更难维护。但这是一个很长的 switch 语句。并且包含 switch 语句的函数显然也很长。://
我有时代替开关做的一件事是我定义了以开关评估的值命名的函数。而不是开关:
switch ( val ) {
case: "alert":
alert( "yo" );
break;
}
我检查范围内是否存在方法并执行它:
obj.alert = function ( ) {
alert( "yo" );
}
if ( val in obj && isFunction( obj[ val ] ) ) {
obj[ val ]( );
}
但同样在这种情况下,我觉得回归的风险很高,我不确定为了避免冗长的 switch 语句而付出努力是否值得,因为它的长度。