我可以在 uml class 图中为 class 绘制多重专业化吗?
Can i draw a multiple specialization for a class in a uml class diagram?
我正在为我将在 oracle 中实现的数据库寻找 UMLclass 图。
在这个数据库中,我有一个 class 可以以不止一种方式专门化。
举个例子推理:有出版物class可以专门从事书籍和杂志,反过来它们可以是数字或硬拷贝。
考虑到我的第二个专业有大约 11 个 child?
,正确的表示方法是什么?
我想到了这个解决方案:
你认为这是正确的吗?一个出版物可以同时专业化为数字图书吗?这两个专精有重叠扔吗?
第一版问题
当然一个class可以被多个人继承(推广)。
A publication can be a digital book?
你的图中没有任何内容说明,因为:
Book ---|> Publication
表示Book是Publication,不是Publication是Book
Digital ---|> Publication
表示Digital是Publication,不是Publication是Digital
一种更接近 "Publication is a Digital Book" 的方法是反转继承方向:
出版物是一本书并且是一本数字书,但不完全是一本数字书,因为数字书和书是两个不同的classes
第二版问题
A publication can be specialized as digital book at the same time?
如果同时意味着由同一个实例答案是否定的,因为在你的图表中,一本书不能同时是一个数字, 因此一个实例不能既是 Book 的实例又是 Digital
的实例
您的解决方案完全可以。也许你应该重命名一些 类,比如 Digital Publication
,因为有人可能认为 Digital
不是特殊的 Publication
。
为了让它变得更好,您应该考虑使用 Generalization Sets
。目前,您的四个概括都是一个默认集,即使它们显示为两棵树。此默认设置重叠且不完整。这意味着,Publication
的实例可以同时是所有四个特化的实例,也可以是完全不同的实例。我认为为了您的目的,需要两个 Generalization Sets
:
- PublicationKind 与
Book
和 Magazine
- PublicationMeans
Digital Publication
和 Hard Publication
两者都将标记为{disjoint, complete}属性。
多重泛化有其优点。明智地使用它。
我正在为我将在 oracle 中实现的数据库寻找 UMLclass 图。
在这个数据库中,我有一个 class 可以以不止一种方式专门化。
举个例子推理:有出版物class可以专门从事书籍和杂志,反过来它们可以是数字或硬拷贝。
考虑到我的第二个专业有大约 11 个 child?
我想到了这个解决方案:
第一版问题
当然一个class可以被多个人继承(推广)。
A publication can be a digital book?
你的图中没有任何内容说明,因为:
Book ---|> Publication
表示Book是Publication,不是Publication是BookDigital ---|> Publication
表示Digital是Publication,不是Publication是Digital
一种更接近 "Publication is a Digital Book" 的方法是反转继承方向:
出版物是一本书并且是一本数字书,但不完全是一本数字书,因为数字书和书是两个不同的classes
第二版问题
A publication can be specialized as digital book at the same time?
如果同时意味着由同一个实例答案是否定的,因为在你的图表中,一本书不能同时是一个数字, 因此一个实例不能既是 Book 的实例又是 Digital
的实例您的解决方案完全可以。也许你应该重命名一些 类,比如 Digital Publication
,因为有人可能认为 Digital
不是特殊的 Publication
。
为了让它变得更好,您应该考虑使用 Generalization Sets
。目前,您的四个概括都是一个默认集,即使它们显示为两棵树。此默认设置重叠且不完整。这意味着,Publication
的实例可以同时是所有四个特化的实例,也可以是完全不同的实例。我认为为了您的目的,需要两个 Generalization Sets
:
- PublicationKind 与
Book
和Magazine
- PublicationMeans
Digital Publication
和Hard Publication
两者都将标记为{disjoint, complete}属性。
多重泛化有其优点。明智地使用它。