我参与了一个应用程序迁移项目。这个应用程序应该根据当前用户角色执行一些逻辑,所以像这样的片段在代码中无处不在:
if ("Role1".equals(user.getUserRole())){
operationVersionForRole1();
} else if ("Role2".equals(user.getRole())){
operationVersionForRole2();
} else if ("Role3".equals(user.getRole())){
operationVersionForRole3();
}
大约有五个角色和近五十个操作,有些角色的操作非常复杂(将近 1000 行代码),因此这种编程风格使源代码变得混乱且难以遵循。是否有任何已知的设计模式可以帮助在这种情况下组织源代码?嵌套的“if-else”感觉不对。