类图中的UML依赖关系或关联

时间:2019-05-04 19:01:24

标签: uml class-diagram

我的Java项目中有类Controller,其方法如下:

enter image description here

如您所见,在第一行中,我获得ActualModes类的Singleton实例并调用方法getActualModes()

第一个问题是,我应该在类图中使用哪种关系。

之后,我将创建ModeContext类的新实例,然后调用方法executeStrategy。在这种情况下,哪个关系更好?

2 个答案:

答案 0 :(得分:1)

应该是这样的:

enter image description here

对单例的访问(请注意只是方便的原型,没有任何义务或一般标准)是匿名的,因此您只有一个依赖项。相反,ModeContext使用称为context的私有(我不知道您所使用语言的作用域规则,所以我将其定为pivate)属性。请注意正好说明这一点的点。

答案 1 :(得分:0)

免责声明:UML未指定Java和UML之间的映射,因此,您所提问题的每个答案都值得商debate。

我认为这两种关系都是依赖关系,用虚线箭头从ControllerActualModes以及从ControllerModeContext绘制。根据UML 2.5规范(第7.8.4.1节),“依赖性”的定义为:

  

依赖关系是一种关系,表示单个模型元素或一组模型元素需要其他模型元素   为元素的规范或实现建模。

在我看来 less 不适合的一种关系类型的例子是 association ,尽管其定义(第11.5节)相当广泛:

  

一个关联对一组表示类型实例之间的链接的元组进行分类。 (...)关联指定了在键入的实例之间可能发生的语义关系。

一个人可能会争辩说Controller与另外两个类之间以变量的形式存在联系,但是这些变量是局部方法变量,它们仅在方法执行期间临时存在。关联代表更持久的链接,例如类成员-就我了解UML和据我所见在实践中使用的关联。