gpt4 book ai didi

java - 此 UML 关联是否正确匹配代码?

转载 作者:行者123 更新时间:2023-11-29 02:58:18 25 4
gpt4 key购买 nike

Uml-association

我正在尝试学习 UML 图,但我发现这部分很难理解。我已经搜索了一个很好的解释,但找不到。我知道 ProgramCordinator 应该有一个包含 Teacher 的列表。但是 Teacher 是否应该有一个 ProgramCoordinator,即使箭头符号是这样的 -> 而不仅仅是一条实线?实线(-)和这个(->)有区别吗?

这是我的代码:

public class ProgramCordinator{
private List<Teacher> teachers;

public ProgramCordinator(Teacher t){
this.teachers.add(t);
}

public ProgramCordinator(){}

}

public class Teacher{
private ProgramCordinator cordinator;

}

我可以在不传递任何参数的情况下实例化一个ProgramCoordinator吗(尽管图表上说我的列表中应该至少有一位老师)?最好的解决方案是什么?

最佳答案

关联上的箭头表示可导航性。箭头末端的物体可以被另一侧的物体看到。可以说是弃用了。相反,您可以使用大点和角色名称来标记拥有的属性。见下文。

假设代码是在 UML 之后完成的:

  • 老师应该有项目协调员吗?:不可以。只是每个老师只能有一个协调员。方向告诉我们没有回头路了。然而,从商业角度来看,导航没有意义。可能你同意老师必须认识他的协调员,因为他们必须互相交谈。编码员感觉到了这一点,并做出了比 UML 告诉的更好的实现。

  • 我可以在不传递任何参数的情况下实例化程序协调器吗?:我不是 Java 编码员,但根据您的代码,您有一个实例替代方案:有和没有老师作为参数。 UML 不指定任何实例化操作。所以这两种操作都是编码器的(需要的)发明。

如果UML是在代码之后做的:

  • 导航箭头错误
  • 缺少对象创建操作

现在(没有显示第二个缺陷)UML 应该是

enter image description here

协调可以没有到无穷无尽的教师分配。每位教师只有一名协调员。

当然,您上面显示的 UML 设计可能是有原因的。但老实说,我无法想象任何 ;-) 所以我缺乏 UML 知识。

关于java - 此 UML 关联是否正确匹配代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59275175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com