类设计(UML类图)

问题描述 投票:0回答:3

有人可以对以下场景提供意见吗:

我有一个

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

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

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

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

我的问题

有人可以告诉我如何将

RepairJob
实例收集在一起吗?我一开始以为,由于管理员用户将添加这些实例,因此最好在
Administrator
类中对集合进行建模,但是技术人员类还必须能够访问有限的修复作业集合。我还创建了一个
RepairJobs
类,其中包含列表并且可供任何一个类使用,但我不确定这是否是一个好的设计。

oop class-design uml
3个回答
2
投票

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

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.
    }


}

1
投票

我的 DDD 视图:您需要一个 RepairJobRepository 来保存 RepairJobs 的集合。您还需要具有以下操作的 RepairService - create(RepairJob jobSpec)(将创建的作业添加到存储库) - 分配(RepairJob 工作、角色角色)

RepairJob 需要像 updateStatus(Status newStatus, Person p) 这样的方法
您需要获取 p 的角色来验证他是否可以更新状态。


0
投票

我们设计了大学研究小组的文献资料库。具体来说,这是关于与阿尔古纳复制品有关的科学技术文章和工作组的相关信息。如果您已经准备好了,就可以在实验室的实验室中进行操作,然后,就可以从研究组的阿尔古诺那里得到信息。 这篇文章的标题是“刀剑”,“作者”、“帕拉布拉斯克拉夫”、“电子通讯方向”(si la hay)、“是”、“是”、“是”、“是”。 这些文章包括公共信息技术、会议活动和科学评论。该信息技术是保护数字和公共中心的信息,与公共事务和公共事务密切相关。 我们将在国会活动中发表文章,以保护国会的名义,并在文章中介绍文章,以庆祝城市的启动和最终确定。 Además se debe Guardar el Tipo de congreso que es(国家或国际)和 la frecuencia con que se celebra(年度等)。在国际会议上,我们将保护国家并展示文章。 Además,se Guardará el año en que el congreso se celebró por prima vez。 Por último, si el artículo ha aparecido publicado en una revista científica, se quiere saber el nombre de la revista, el nombre del editor, el año en que empezó a publicarse, la frecuencia con que aparece (月经,三个月期等),修订版的主题、修订版的编号、文章、页面(例如 512-519)和 año。我们提供有关文章和一般性文章的附加信息,以及其他调查者、工作中心和电子邮局的指导。 Además, si es posible, también se desea conocer los temas concretos en que trabajan

© www.soinside.com 2019 - 2024. All rights reserved.