首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类设计(UML类图)

类设计(UML类图)
EN

Stack Overflow用户
提问于 2011-02-23 02:47:42
回答 2查看 785关注 0票数 2

有没有人可以在下面的场景中提供他们的意见:

我有一个Administrator类和一个Technician类(这两个类都扩展了User类,但这不是重点)。我还有一个RepairJob类,它表示一个项目在其修复的不同阶段{已接收|正在修复|正在等待零件,等等}。

只有管理员用户才能向系统添加新的维修作业,并且还可以查看当前正在进行的所有维修作业的状态。

从任何尚未被其他技术人员接受的维修作业列表来看,技术人员需要能够接受维修作业。技术人员用户还必须能够更新他们接受的维修作业的状态,直到准备将其返回给客户(另一类)。

管理员将能够接受系统中的任何维修作业,即使是技术人员已经接受的维修作业,此时他们将不再能够更新维修作业的状态。(考虑到员工下班的情况)

我的问题

谁能给我介绍一下您将如何收集RepairJob实例。我最初认为,由于管理员用户将添加这些实例,因此最好在Administrator类中对集合进行建模,然而,技术人员类也必须能够访问有限的维修作业集合。我也曾想过创建一个RepairJobs类,其中包含list,并且对任何一个类都可用,但我不确定这是否是一个好的设计。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-23 02:52:19

我认为它应该与管理类和技术类分开。RepairJob用于单个任务;您所描述的听起来像是一个维护RepairJobs集合并跟踪其状态的RepairJobManager。它根据与其交互的特定用户的角色执行您的规则。

代码语言:javascript
运行
复制
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.
    }


}
票数 2
EN

Stack Overflow用户

发布于 2011-02-23 04:12:45

我的DDD观点:您需要一个包含RepairJobs集合的RepairJobRepository。此外,您还需要一个具有以下操作的RepairService:- create(RepairJob jobSpec) (将创建的作业添加到存储库)- assign(RepairJob作业,角色角色)

RepairJob需要像updateStatus(Status newStatus,Person p)这样的方法

您需要让p的角色验证他是否可以更新状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5082459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档