有没有人可以在下面的场景中提供他们的意见:
我有一个Administrator
类和一个Technician
类(这两个类都扩展了User
类,但这不是重点)。我还有一个RepairJob
类,它表示一个项目在其修复的不同阶段{已接收|正在修复|正在等待零件,等等}。
只有管理员用户才能向系统添加新的维修作业,并且还可以查看当前正在进行的所有维修作业的状态。
从任何尚未被其他技术人员接受的维修作业列表来看,技术人员需要能够接受维修作业。技术人员用户还必须能够更新他们接受的维修作业的状态,直到准备将其返回给客户(另一类)。
管理员将能够接受系统中的任何维修作业,即使是技术人员已经接受的维修作业,此时他们将不再能够更新维修作业的状态。(考虑到员工下班的情况)
我的问题
谁能给我介绍一下您将如何收集RepairJob
实例。我最初认为,由于管理员用户将添加这些实例,因此最好在Administrator
类中对集合进行建模,然而,技术人员类也必须能够访问有限的维修作业集合。我也曾想过创建一个RepairJobs
类,其中包含list,并且对任何一个类都可用,但我不确定这是否是一个好的设计。
发布于 2011-02-23 02:52:19
我认为它应该与管理类和技术类分开。RepairJob用于单个任务;您所描述的听起来像是一个维护RepairJobs集合并跟踪其状态的RepairJobManager。它根据与其交互的特定用户的角色执行您的规则。
package model;
public class RepairJobManager
{
private Map<String, RepairJob> jobs;
public void add(RepairJob job, Role role)
{
// Only allow Admin to do certain things.
}
public void update(RepairJob job, Status status, Role role)
{
// Only allow Admin to do certain things.
}
}
发布于 2011-02-23 04:12:45
我的DDD观点:您需要一个包含RepairJobs集合的RepairJobRepository。此外,您还需要一个具有以下操作的RepairService:- create(RepairJob jobSpec) (将创建的作业添加到存储库)- assign(RepairJob作业,角色角色)
RepairJob需要像updateStatus(Status newStatus,Person p)这样的方法
您需要让p的角色验证他是否可以更新状态。
https://stackoverflow.com/questions/5082459
复制相似问题