6

好的,所以当我尝试在 UML 图中显示关系时,何时应该向类添加属性与绘制与类的关联,我有点困惑。

例如,假设我有一个包含 10 个状态对象的 DFA 类,每个状态对象都有一组不同的路径到 DFA 中的各种状态。我应该从 DFA 到 State 类绘制合成线,还是只在 DFA 类的属性部分中键入所有 10 个状态。

基本上,我试图弄清楚当一个 A 类包含(或由)一个或多个 B 类时,我应该在它们之间画一条线(聚合、组合、关联依赖等)还是只将一个作为属性其他。

这篇文章试图回答这个问题,但当他开始谈论他绘制的图表时,我就感到困惑。

4

1 回答 1

7

您指出的文章给出了一个指导方针:

这些年来,我一直在与不同的建模团队合作,我发现最有效的规则是对类使用关联,对数据类型使用属性。数据类型是一种特殊的分类器,类似于类。它与类的不同之处在于数据类型的实例仅由它们的值标识。

我有点同意作者的观点,补充一点:你的类图应该是可以理解的。如果您的图表中有许多相互交叉的线,则该图表是无用的。发生这种情况时,您必须尝试找到可以使用属性建模而不会丢失太多视觉信息的关系,并用属性替换它们。

你可以用关系而不是属性做的另一件事是显示双向关系(你可以用关系的每个类中的一个属性来做到这一点,但你会失去关系的语义)。

于 2012-11-26T08:51:59.850 回答