我在用ssh写一个基本功能论坛,但是在设计实体类的时候有些迷惑,就是用户的实体类要怎么设计呢,我希望有超级管理员,版主及普通会员,超级管理员和版主会比普通用户多出许多类方法,并且不同角色的成员变量可能也会有许多不同,请问我是应该用一个类表示所有用户还是用继承或者接口什么的来实现我希望的功能呢,麻烦大家指点一下,谢谢
我在用ssh写一个基本功能论坛,但是在设计实体类的时候有些迷惑,就是用户的实体类要怎么设计呢,我希望有超级管理员,版主及普通会员,超级管理员和版主会比普通用户多出许多类方法,并且不同角色的成员变量可能也会有许多不同,请问我是应该用一个类表示所有用户还是用继承或者接口什么的来实现我希望的功能呢,麻烦大家指点一下,谢谢
应该用继承来实现,按权限来说 超级管理员 > 版主 > 普通会员 > 普通用户, 并且从功能上来说, 前者会依次包含后者的所有功能,也就是 只要普通用户有的, 其他三个角色也会有, 所以继承的结构上就和权限的顺序一样了。
并且使用继承的一个好处就是如果你使用ORM框架(如MyBatis)的话,针对普通用户的所有数据库交互都适用于后者。
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
在设计思路上就走偏了,不可以想着在用户类里面放置权限的东西,用户就是用户,权限就是权限,这要区分开来。
用户类
仅存储用户的基本信息,如用户名、登录名、姓名、昵称等等,如果你想要不同用户拥有不同的权限去控制你的论坛功能,那么就需要额外的权限角色管理,定义好角色
所拥有的权限,然后再把角色分配给用户。这样才是正确的权限控制管理思路。