如何在UML类图中省略基类

时间:2013-10-09 21:51:04

标签: inheritance uml class-diagram

在UML类图中,如何在不给出错误印象的情况下省略不相关的基类?

让我们考虑以下类层次结构:

Class hierarchy

我想说明BlackbirdAirplane都是FlyingThing的事实。但我不想把我的UML类图与Blackbird的整个祖先混为一谈。

我可以简单地省略BirdAnimalLivingOrganism,只绘制三个“相关”类。但这看起来好像Blackbird只来自FlyingThing,而不是其他任何东西。

为了防止出现这种错误的印象,我可能会考虑包括Bird课程,只留下AnimalLivingOrganism。但是看起来好像Bird根本就没有基类。结论:无论我在哪里进行剪切,它总是看起来好像一个类的基类比实际的更少。

我正在寻找的是某种方式来表明“除了显示的类之外,这个类还有其他基类,但是我不能费心去画它们。”我想象一下省略号的一些东西。是否有任何标准的表达方式?

修改

我在这个图中编写了类来说明问题。因此问题是关于多重继承或此特定类设计是否有意义。我们假设他们这样做了。这个问题不是关于特定的UML建模工具,我们假设我们在这里使用笔和纸。

重新说出我的问题:想象您看到的图表只包含三个突出显示的类而没有别的。您是否认为此图表示全部事实,Blackbird除了FlyingThing之外没有其他基类?

  • 如果您认为,是的,Blackbird似乎仅来自FlyingThing:那么必须有一些标准的UML语法来表明情况并非如此。

  • 如果您认为,不,可能会有图表的作者省略的其他基类:那么这就回答了我的问题而我只是看到了实际上没有的问题。 : - )

3 个答案:

答案 0 :(得分:0)

我很确定你会找到每个设计师的解决方案...... 一个图表暴露了整个模型的部分和唯一的一部分,所以整个问题是哪个部分?对这个问题的回答很简单,取决于你想要展示什么来理解你的问题。

此致

BR

答案 1 :(得分:0)

除了@Red Beard正确的说法之外,一些工具还可以为其他图表添加超链接(例如,企业架构师):

enter image description here

所以你可以添加一个链接到另一个图表来揭示完整的继承祖先。

但首先考虑一下:

您的班级Blackbird是否真的继承了FlyingThingBird? 可能在某些语言中,但不是巧妙的设计。

或者你的generalization到FlyingThing实际上是接口的implementation吗?如果是这样,您希望使用正确的连接类型(如图中所示)。

答案 2 :(得分:0)

我的解决方案是使用其名称(定义)指定超类,您也会提供一些注释以确保目标开发人员不会混淆。 例: enter image description here 顺便说一下,我不得不说,这不属于ISO。咖啡效果。