我写了以下代码:
var json = {};
var test = {
run: function(json)
{
var choice = (function(){
if (json.a != '' && json.b == '' && json.c == ''){ return 'a'} else
if (json.a == '' && json.b != '' && json.c == ''){ return 'b'} else
if (json.a == '' && json.b == '' && json.c != ''){ return 'c'} else
if (json.a != '' && json.b != '' && json.c == ''){ return 'd'} else
if (json.a != '' && json.b == '' && json.c != ''){ return 'e'} else
if (json.a == '' && json.b != '' && json.c != ''){ return 'f'} else
return 'g';
})();
switch (choice)
{
case 'a': console.log('a');
break;
case 'b': console.log('b');
break;
case 'c': console.log('c');
break;
case 'd': console.log('d');
break;
case 'e': console.log('e');
break;
case 'f': console.log('f');
break;
case 'g': console.log('no arguments');
}
}
};
json.a = 'xxx';
json.b = '';
json.c = 'yyy';
test.run(json);
这将返回“e”,但 json 每次都可能不同。
当每个“if”语句都有很多代码行时,这种代码结构更易于阅读。
想象 :
if(statement){
//100 lines of code
}else
if(statement){
//100 lines of code
}else ........
//and so on.
我想知道有没有比这个解决方案更好的设计模式?我将不胜感激。