Java 寻找一个建模模式

Java 寻找一个建模模式,java,model,Java,Model,你好: 我正在使用一个任务发布系统 在系统中,有一些部门,例如:开发/销售/产品等 一些任务属于不同的部门 最重要的模型是用户 使用这个系统的人只是不同部门的老板和他们的老板(最大的老板) 这些人都在管理页面工作,普通上司只能发布和查看他/她的部门中的任务。他/她可以添加/删除/修改任务(其中修改意味着他可以设置任务的状态:完成/正在进行/未开始),他/她的所有操作都应由最大上司验证 最大上司可以查看/添加/删除/修改所有部门的所有任务,也可以添加/删除用户(普通上司),设置用户权限(用户可以查

你好: 我正在使用一个任务发布系统

在系统中,有一些部门,例如:开发/销售/产品等

一些任务属于不同的部门

最重要的模型是用户

使用这个系统的人只是不同部门的老板和他们的老板(最大的老板)

这些人都在管理页面工作,普通上司只能发布和查看他/她的部门中的任务。他/她可以添加/删除/修改任务(其中修改意味着他可以设置任务的状态:完成/正在进行/未开始),他/她的所有操作都应由最大上司验证

最大上司可以查看/添加/删除/修改所有部门的所有任务,也可以添加/删除用户(普通上司),设置用户权限(用户可以查看哪个部门的任务)

=================== 以下是我自己的设计:

Department
  String name;//name of this department

  List<Task> listAllTasks();// list all tasks belong to this department

Task
  String name;
  String desc;//description of this task
  Date startTime;//when this task will start
  Date endTime;
  int status; //is this task done? doing? not starting?
  String executorName; //the name of the person who will responsible for this task(here the person does not need to be common boss,just a name).
  Department depart;//which department does this task belong to ?

Boss
  String loginName;
  String realName;
  String password;
  Department depart;//which department does this boss belong to ?
部门
字符串名//本部门名称
列出listAllTasks();//列出属于该部门的所有任务
任务
字符串名;
字符串描述//此任务的说明
日期开始时间//此任务何时开始
日期结束时间;
智力状态//这项任务完成了吗?做什么?不开始?
字符串名称//负责此任务的人员的姓名(此处人员不需要是普通上司,只需一个姓名)。
科室//这个任务属于哪个部门?
老板
字符串登录名;
字符串实名;
字符串密码;
科室//这个老板属于哪个部门?
以上都是我的想法,我不知道要继续做权威的设计

比如说,最大的老板呢,他/她当然不属于任何部门,但他/她拥有最大的权力

谁能帮我个忙


顺便说一句,我将使用hibernate作为DAO,struts2作为web控制器。

将您的
Boss
类更改为
Person
,然后添加一个
@ManyToOne
Person superior
(假设每个员工只有一个以上的上司)

@ManyToMany
列出上级列表=新建ArrayList()
如果每个员工有一个以上的上级

如果某人是boos(组织树中的最高权限),
superior
superiorList
将为空

角色

创建一个角色类

Role 
@OneToMany List<Task> taskList = new ArrayList<Task>();
role_code

@ManyToMany列表角色列表

如果一个人可以被分配许多角色。

如何控制用户的权限?例如,当一个普通的老板登录时,我必须列出他有权限的所有任务,如何做?谢谢你的关注。您可以使用xml配置来实现吗?我从不使用和“讨厌”注释:(非常抱歉,编写hibernate xml映射现在已经超出了我的专业范围。如果您不需要解决任何兼容性问题,我真的建议使用JPA hibernate实现和注释。它更简单、更容易。
@ManyToOne Role role
@ManyToMany List<Role> roleList