interface - 实现 UML 序列和类图
问题描述
我最近遇到了这个问题,我只是好奇我的工作是否正确,如果不正确,我在哪里犯了错误。
我的任务:
a) 官员是临时或永久任命的。教授是可以被任命为固定任期或终身的公务员。教授也是教学教授或研究负责人。科研机构的雇员是公务员或雇员。教授隶属于科学部长,科研院所员工隶属于教授。研究所的教授和员工都在研究所工作。研究所可以召集教授和工作人员开会。
创建适当的 UML 类图。
我的答案:
b) 教授可以通知秘书处,他或她想与研究所的工作人员进行约会。秘书处随后将向所有相关工作人员发送一份拟议任命清单。一旦秘书处收到所有工作人员的反馈,它将向他们每个人发送最终任命。
创建相应的 UML 序列图。
我的答案:
c) 用 Java 实现 (b) 中的过程(方法体就足够了!)。这样做时,请遵守 (a) 中定义的类、抽象类和接口。
我的答案:
我试图解决这个问题,但我没有进一步了解,特别是它是关于使用抽象类和接口解决任务的。我认为这个子任务可以在没有抽象类和接口的情况下解决,对吧?
科研机构是否应该作为一个抽象类来实现?
有人可以向我解释一下吗?非常感谢 :)
解决方案
类图
有一个错误,因为谁是professor
谁的下属:在你的叙述中,教授是部委的下属,而不是另一位教授的下属。 civil-servant
co-worker
professor
我从叙述中了解到,在 ascientific institute
和subordinate to
a工作的员工professor
只能是employee
.
在您的图表中,部分叙述消失了:
- 只有
fulltime_employee
. 目前尚不清楚这些与临时和永久雇员有何关系。 - 没有
meeting
与工作人员和教授有关的内容。 - 工作人员在哪里?
在您的图表中,还有一种现实世界中不存在的刚性:aprofessor
可能会开始职业生涯,并且有一天会晋升为director of studies
。还是那个教授。只是角色变了。在这里,我建议考虑优先组合而不是继承。
顺序
对我来说似乎很合理,除了:
- 你真的应该将单独的执行活动显示为单独的:秘书处发送活动然后它就结束了。当收到反馈时,另一个活动开始。在某些情况下(收到最后的反馈),随后是另一个不同的活动来发送最终确认。
- 你应该小心箭头。大多数请求是异步的并且有一个开放的箭头。
- send final 是发送给工作人员时的普通异步消息(纯线,开头),但它是对教授的回答(这里可以保留虚线。
执行
这本身就是一个复杂的问题。最好将此作为一个单独的问题提出。但你需要更具体。
提示:抽象类,是一个不能被实例化的类:从它继承的类必须实现它的抽象方法,这样对象才能被实例化。
推荐阅读
- javascript - 如何将带有对象的数组推入数组
- php - Laravel 7 中的资源如何只显示创作者的某些领域?
- python - 如何检查列表项是否位于另一个列表中的元组之间?
- php - PHP - AJAX - 字段组数组 POST 值总是显示未定义的索引
- javascript - Bootstrap 4 Card Deck Fixed Card Width (当少于每行指定数量的卡片时)
- java - 无法使用休眠在同一 JSP 页面上同时保存一对多关系实体
- arraylist - 带有 Viewpager2 和回收器视图适配器的 Exoplayer
- powershell - 带有 Powershell 和通配符的 GnuPG 用于加密
- python - 如何从 Python 的根目录导入模块?
- reactjs - 删除在 ES6 语法中在另一个数组中重复的所有元素