我被安排在一个项目中,该项目有一个将按钮写入页面的凌乱类。该应用程序是一个文档管理器,并具有一个弹出式按钮列表,例如下载、电子邮件和打印。根据用户的角色和文档的状态,会显示不同的按钮。
在其他 WTF 中是这样的:
bool showEditButton = document.docTypeId == documentEnum.docType.text &&
( document.statusId == documentEnum.docStatus.Editable || (user.UserStatus == userEnum.Status.SuperUser) || ( user.UserID == document.CreatedByUserId ) )
以此类推,直到我无法弄清楚发生了什么。
我不知道这是否只是更深层次的架构缺陷的副作用,或者是否有一种很好的方法来处理检查权限和状态值的混合。我应该把所有这些疯狂的条件放在一个方法中然后忘记它吗?不过,这对下一个继承项目的程序员没有好处。