问题描述
- 一个查询功能,管理员,教师,专家,查询的结果不同,应该如何设计代码
-
问题描述如下: 查询学生的信息。管理员可以查询所有人的信息。教师只能查询自己班级的信息。专家只能查询自己负责班级的信息。 现在代码结果,我在一个方法中做判断,这样查询也可以得到查询结果。但是我觉得,这样做的话,如果其他的功能中也有相似的权限设置,又要查询一次,也不符合面向对象的设计原则 。请帮忙解答,不盛感激!
解决方案
重新抽象对象设计,从你的描述中,可以这样抽象:被管理对象有:学生、班级(学生分组)。管理对象有:教师、专家。
我们可以这样设计数据结构:班级表:保存基本班级信息
学生表:包含学生基本信息 以及 学生所属班级
教师表:包含教师基本信息 以及 教师管理的班级信息(一个教师一个班级直接存于主表、多个可以根据实际情况考虑字表)
专家表:设计类似教师表。
此时查询时:只需要从教师或者专家对象上获得 管理范围内的班级,然后查询学生表 班级字段是管理范围内的所有 学生,就可以了。
解决方案二:
用中间表做个关联,设置不同人员对应的班级人员的对应关系。然后登陆的时候查询加载不同的人员。
解决方案三:
我刚才说的不对。两个用的同一个方法getStudent。
时间: 2024-11-01 08:41:39