我能画在UML类图的类的多个专业化?

问题描述 投票:0回答:2

我在寻找绘制UMLclass图的,我将在oracle中实现数据库。 在这个数据库中我可以专门从事不止一种方法的类。推理用一个例子:有出版类可专门书刊杂志,作为回报,他们可以是数字或硬拷贝。 什么是代表它,考虑到我的第二个专业化有一定的十一孩子的正确方法是什么?

我曾经认为在这个解决方案:你认为这是正确的吗?的出版物可以在同一时间进行专门的数字图书?有重叠抛出这两个专业化?

database uml diagram class-diagram
2个回答
-1
投票

这个问题的第一个版本

当然,一个类可以由几个继承(广义)。

的出版物可以是数字的书?

没有什么你的图表中说,这是因为:

  • Book ---|> Publication指书是一个公开,而不是一个公开是一本书
  • Digital ---|> Publication意味着数字是一个公开,而不是一个公开是数字

有东西接近“出版是数字图书”的方法是反向继承的方向:

enter image description here

与一出版一本书和一个数字,但并不完全是数字图书,因为数字和书是两个不同的类

这个问题的第二个版本

的出版物可以在同一时间进行专门的数字图书?

如果在同一时间是指由同一实例的答案是否定的,因为你的图中的书也不能是数字,因此,实例不能同时书的实例和数字化的一个实例


0
投票

您的解决方案是完全可行。也许你应该重新命名几类,如Digital Publication,因为有人可能会认为Digital不是特殊Publication

为了使其更好,你应该考虑使用Generalization Sets。目前四位推广都是一个默认设置,即使他们显示有两棵树。这种默认设置是重叠的和不完整的。这意味着,Publication的一个实例可以在同一时间将所有四个专业化的实例,或者是完全不同的东西。我觉得你的目的,将需要两个Generalization Sets

  • BookMagazine PublicationKind
  • Digital PublicationHard Publication PublicationMeans

双方将标有属性{脱节,完全}。

多推广有其优点。只要明智地使用它。

© www.soinside.com 2019 - 2024. All rights reserved.