java类设计问题?

z1476396586
  • 119

我在用ssh写一个基本功能论坛,但是在设计实体类的时候有些迷惑,就是用户的实体类要怎么设计呢,我希望有超级管理员,版主及普通会员,超级管理员和版主会比普通用户多出许多类方法,并且不同角色的成员变量可能也会有许多不同,请问我是应该用一个类表示所有用户还是用继承或者接口什么的来实现我希望的功能呢,麻烦大家指点一下,谢谢

回复
阅读 2.4k
4 个回答

在设计思路上就走偏了,不可以想着在用户类里面放置权限的东西,用户就是用户,权限就是权限,这要区分开来。

用户类仅存储用户的基本信息,如用户名、登录名、姓名、昵称等等,如果你想要不同用户拥有不同的权限去控制你的论坛功能,那么就需要额外的权限角色管理,定义好角色所拥有的权限,然后再把角色分配给用户。

这样才是正确的权限控制管理思路。

这个不是类涉及的问题,而是权限角色管理的问题.你就一个用户类,有的用户能点删除,有的用户不能点.
权限控制的一个框架

应该用继承来实现,按权限来说 超级管理员 > 版主 > 普通会员 > 普通用户, 并且从功能上来说, 前者会依次包含后者的所有功能,也就是 只要普通用户有的, 其他三个角色也会有, 所以继承的结构上就和权限的顺序一样了。
并且使用继承的一个好处就是如果你使用ORM框架(如MyBatis)的话,针对普通用户的所有数据库交互都适用于后者。

个人觉得,最好是单一的用户类,程序内部其实是可以调用所有功能的。调用前判断下用户权限,来区分不同权限的用户操作

宣传栏