Inheritance 如何在UML类图中省略基类
在UML类图中,如何省略不相关的基类而不给人留下错误的印象Inheritance 如何在UML类图中省略基类,inheritance,uml,class-diagram,Inheritance,Uml,Class Diagram,在UML类图中,如何省略不相关的基类而不给人留下错误的印象 让我们考虑下面的类层次: 我想说明一个事实,Blackbirds和Airplanes都是FlyingThings。但是我不想把我的UML类图与Blackbird的整个祖先混为一谈 我可以省略鸟,动物,和活生物体,只画三个“相关”类。但这看起来好像黑鸟只来自于飞行,而不是其他 为了防止这种错误的印象,我可以考虑包括鸟>代码>类,只留下动物< /代码>和 LIVEGIONGORION/CODE >。但这样看来,Bird根本就没有基类。一句
让我们考虑下面的类层次:
我想说明一个事实,Blackbird
s和Airplane
s都是FlyingThing
s。但是我不想把我的UML类图与Blackbird
的整个祖先混为一谈
我可以省略鸟
,动物
,和活生物体
,只画三个“相关”类。但这看起来好像黑鸟只来自于飞行,而不是其他
为了防止这种错误的印象,我可以考虑包括<代码>鸟>代码>类,只留下<代码>动物< /代码>和<代码> LIVEGIONGORION/CODE >。但这样看来,Bird
根本就没有基类。一句话:无论我在哪里进行剪切,看起来总是一个类的基类比实际的基类少
我想要的是某种方式来表明“这个类除了显示的那些基类之外还有其他的基类,但是我不想费心把它们全部画出来。”我想象一些类似于省略号的东西。有没有标准的表达方式
编辑:
为了说明这个问题,我在这个图表中编了几个类。所以问题不在于多重继承或这个特殊的类设计是否有意义。让我们假设他们这样做。这个问题也不是关于一个特定的UML建模工具——让我们假设我们在这里使用的是笔和纸
为了重新表述我的问题:你看到了一个只包含三个突出显示的类的图表,其他什么都没有。您是否会假设此图代表了全部事实,并且Blackbird
除了FlyingThing
之外没有其他基类
- 如果您认为,
似乎只是从Blackbird
派生出来的:那么必须有一些标准的UML语法来表明情况并非如此FlyingThing
- 如果你认为,不,可能还有其他基类,图表的作者省略了:然后这回答了我的问题,我只是看到了实际上没有的问题。:-)
BR除了@Red Beard正确地说的之外,有些工具还允许您向其他图表添加超链接(例如,enterprise architect可以): 因此,您可以添加一个链接到另一个显示完整继承祖先的图表 但首先要考虑这个问题: 你的类
Blackbird
真的继承了FlyingThing
和Bird
?
在某些语言中是可能的,但不是聪明的设计
或者你对FlyingThing的
概括
实际上是接口的实现
?如果是这样,您需要使用正确的连接类型(如图中所示)。我的解决方案是使用其名称(定义)指定超类,您还需要提供一些说明,以确保目标开发人员不会混淆。
例子:
顺便说一下,我必须说,这不是ISO的。咖啡效果。对:)我将删除我的评论谢谢,红胡子,你指出遗漏(没有任何特殊标记)在类图中是完全正确的。