【问题标题】:How to omit base classes in UML class diagram如何在 UML 类图中省略基类
【发布时间】:2013-10-09 21:51:03
【问题描述】:

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

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

我想说明Blackbirds 和Airplanes 都是FlyingThings 的事实。但我不想让我的 UML 类图与 Blackbird 的整个血统混为一谈。

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

为了避免这种错误印象,我可能会考虑包含Bird 类,只留下AnimalLivingOrganism。但是看起来Bird 根本没有基类。底线:无论我在哪里进行剪辑,它总是看起来好像一个类的基类比它实际的少。

我正在寻找某种方式来表明“这个类除了显示的基类之外还有其他基类,但我懒得把它们都画出来。”我想象一些类似于省略号的东西。有什么标准的表达方式吗?

编辑:

我在这张图中组成了类来说明这个问题。所以问题是关于多重继承或这种特殊的类设计是否有意义。让我们假设他们这样做。这个问题也不是关于特定的 UML 建模工具 - 假设我们在这里使用笔和纸。

重新表述我的问题:想象一下,您看到的图表仅包含三个突出显示的类,没有其他内容。你会认为这张图代表了全部真相,并且Blackbird 除了FlyingThing 之外没有其他基类?

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

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

【问题讨论】:

  • 对 :) 我会删除我的评论

标签: inheritance uml class-diagram


【解决方案1】:

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

问候,

BR

【讨论】:

  • 感谢 Red Beard 指出在类图中省略(没有任何特殊标记)是完全可以的。
【解决方案2】:

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

因此,您可以添加一个链接到另一个揭示完整继承祖先的图表。

但首先考虑一下:

你的类Blackbird 真的继承自FlyingThingBird 吗? 在某些语言中可能,但不是聪明的设计。

或者你的 generalization 是 Fl​​yingThing 的实际接口的 implementation?如果是这样,您想使用正确的连接类型(如图所示)。

【讨论】:

    【解决方案3】:

    我的解决方案是用它的名字(定义)指定超类,你也会提供一些注释来确保目标开发者不会混淆。 例子: 顺便说一句,我不得不说,这不属于 ISO。咖啡效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 2016-09-04
      • 2021-04-09
      • 2019-09-06
      • 1970-01-01
      相关资源
      最近更新 更多