Java数据结构建议

时间:2011-12-13 04:13:57

标签: java data-structures

正在开发的应用程序的一部分是向用户呈现表单并请求他们拒绝/接受它。有些类型的用户需要批准相同的表单才能被认为是被接受的。我需要的建议是:我可以使用什么结构/最好地存储用户类型及其响应? 到目前为止,我有一个批准者的对象。这使用三种类型的用户拥有setter和getter(以及与操作相关的其他方法)。我还创建了另一个UserDecisions对象,其中我有两个要设置的属性,它们是:Usertype&响应。但我想不出如何将它们联系在一起或者是否有更好的方法? 谢谢,

P.S。我考虑的事情是2D阵列和包含HashMap。

3 个答案:

答案 0 :(得分:1)

“非规范化”系统会有User个,UserType枚举(或类似),以及User =>的集合Response秒。地图很好;它加快了确保用户不投票两次。

如果您需要按UserType汇总答案,则可以单独记录UserType => Response已更新,因为已对回复进行了统计。

答案 1 :(得分:1)

为用户创建基类。扩展它们以创建您自己的自定义用户类,例如Approvers。在UserDecisions类中,为formName或userName创建一个字段,该字段将UserDecisions与Users链接。或者,您可以创建一个单独的类来进行链接。

答案 2 :(得分:1)

假设你有

User { name, type  }  
         // type is perhaps an enum with values such as administrator,
         // manager, seniorManager, executive 

Response { user, decision }
         // decision is an enum "pending", "approved", "rejected"

Role { name, minimumTypeOfUser }
         // first approval can be done by administrators or above
         // second approval by managers or above
         // third approval by executives only

Approval { Role, Response }


ThingToBeApproved { detalsOfWhatNeedsApproving, approvalList<Approval> }
          // when you set up the approval list you specify each
          // approval role and then select a user whose type matches
          // the role.

在我工作的系统中,我们将用户与角色分离以完成任务 - 更高级的人有时会履行大三的角色。