我必须升级我的应用程序才能显示基于用户类型和角色属性的页面。目前,我根据用户类型使用简单的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/

10-11 15:34