我必须升级我的应用程序才能显示基于用户类型和角色属性的页面。目前,我根据用户类型使用简单的switch语句来执行此操作,例如
switch(type) {
case 'a':
return CONSTANT.ONE;
case 'b':
return CONSTANT.TWO;
default:
return null;
}
开关只返回一个常量字符串,该字符串指示视图showm,但是随着类型,角色的增加,它不能扩展。任何人都可以建议在这种情况下使用的良好模式。我以为状态模式可能很好,但是那是为了返回字符串而在顶部吗?
谢谢
最佳答案
与@MarkusJarderot非常相似,但是在行为上有一些重要区别,我将使用:
var mapping = {
'a': CONSTANT.ONE,
'b': CONSTANT.TWO,
'_default': null
};
return mapping.hasOwnProperty(type) ? mapping[type] : mapping["_default"];
当
mapping[type]
的值是伪造的时,它将仍然返回它,而不是转到null
替代方法。当您的值之一是0
或空字符串时,这将非常有用。关于javascript - 用更好的模式替换开关(Javascript),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28330506/