2017-10-16 12 views
1

随着UML 2.5的定义,ObjectNode是一个抽象类。就我的理解而言,抽象类不能被实例化。ObjectNode的符号如何存在?

那么为什么ObejctNode有一个图形符号,因为它不能在模式中实例化?参见UML规范的图15.49。

+0

太棒了,有人给我的问题加1,有没有办法查看谁和为什么?有人可以在没有发表任何评论的情况下向上/向下投票,提倡他的选择有点奇怪, – granier

回答

2

为什么不能呢?

如果一个抽象类定义了一个符号,那么这仅仅意味着这是所有子类使用的符号,除非它们定义了自己的符号,否则将覆盖(抽象)父类的符号。

虽然没有明确提到,但它似乎与分类器的符号很相似。 从UML 2.5规格:

9.2.4.1量词

分类器是一个抽象的元类。尽管如此,在一个地方定义可用于分类器的任何具体子类的默认符号仍然是方便的。分类器的一些专业化有它们自己独特的符号。

另一个类似的构建体已用于抽象元类的操作:

16.2.4.1操作

动作被记为圆角矩形,如图16.2。该行为的名称或其他说明 可能会出现在符号中。 (某些特定类型的操作的专业符号在随后的 分条款进行了描述。)

enter image description here

+0

好,但是对抽象“元类”建模的含义是什么?就像“现在我不知道要使用什么具体的类,以及后来或在其他地方我定义了具体的元类来使用它吗?” – granier

+0

你有没有参考你所建议的?在规范中,这不是写成的。元类的表示似乎不是元类的属性,为什么扩展元类的元类默认使用相同的图形符号? – granier

+0

您不能对抽象元类进行建模,只有它是但是它们都继承了抽象元类的属性,如果你看到这个符号是可以被继承的元类的属性,那么这是有道理的,我不知道是否或在何处描述规格说明你可能不得不看看meta-specs –

-2

@granier,你是对的,我是在UML 2.5规范中的一个错字。 Objectode可以定义为instanciated。

+0

我很确定这不是一个错字。如果你阅读这个解释,它会被提到很多次,包括具体的子元类的列表。 –

+0

我同意ObjectNode可以实例化的事实。但是图15.49显示了意大利语中的ObjectNode metaclasse,这意味着它是抽象的,不能被实例化,即错字。与Element,RelationShip和Comment相同。元素和关系元类以斜体显示,因此不能实例化。评论,Element的一个子变种,不是在italique中,所以它不是抽象的,所以它可以被实例化。 –

+0

所以,你基于隐式推理的基础上,如果在规格中有一个数字显示ObjectNode,他们必须是具体的。但是你选择忽略ObjectNode是抽象的几个显式语句? –

相关问题