c#类在系统中有哪些关联?如何在UML中最好地表示它们?
这篇文章实际上分为两个问题:
类/接口通常有哪些类型的关联
我认为至少有3种依赖关系:
- 遗产:我想我们都知道这个)
- 依赖关系:我的意思是,如果
class A
依赖于class B
,我只能将class A
作为构造函数参数传递给它,然后才能实例化它。这是正确的吗李> - 用法:
class A
如果在class A
的代码中有任何类型的class B
引用既不是依赖项的继承,则使用class B
李>
这些是类之间唯一的关联吗?我对其含义的解释正确吗
我们感兴趣的是在UML图(主要是类/包图)上显示哪种依赖关系
到目前为止,我只在类图中放置了描述依赖关系和关联的箭头。但是现在我想起来了,大部分时间我都在看类图,我会发现一些类似于
其中仅显示Inherits
和Uses
关联。但是类图中的那些Uses
实际上并不是我上面定义的那种Uses
。它们只是告诉你,在一个类型不是基元的类上有一个getter
我想如果我必须查看一些系统的文档,我想知道系统中不同的类是如何相互依赖的。我确实想看一些Dependency Graph
是否最好将类图限制为Inherits/Uses
关联,然后使用其他显示Depends/Uses
关联的图/图
你喜欢什么,为什么
谢谢
# 1 楼答案
首先,您应该停止谈论继承,将关系作为“关联”来依赖和使用。“关联”一词在UML中有特殊的含义;见下文
在您提到的三种关系中,传统的做法是在类图中只显示继承(技术上是泛化)关系。它们使用带有开放三角形箭头的实线表示
如果您想显示类之间的依赖/使用关系,您应该使用UML依赖关系表示法;i、 e.带有“V”箭头的虚线
类图中通常描述的另一种关系是关联;i、 e.类实例之间承载关系的信息,通常使用(例如)指针或数据库外键/索引表示
我想这是个人偏好的问题,但我不想在对象图上看到依赖/使用关系。综合线和关联线的布局非常困难。其他行只会使图表过于“繁忙”
UML用户指南说: