从UML图创建java类
我必须基于这个从UML图创建java类,java,uml,Java,Uml,我必须基于这个UML图创建java类。 问题是我不知道红色形状里面的关系是什么。 我做了A,B,C,D类之间的所有其他关系,但这一个我无法理解 谁能给我一个提示吗 到目前为止,我已经: class A extends B class D extends C class C List<B> bElement; class D List<A> aElement; A类扩展B类 D类扩展了C类 C类 列表标线; D类 List这意味着较低的关联继承自较高的关联。就像
UML图创建java类。
问题是我不知道红色形状里面的关系是什么。
我做了A,B,C,D
类之间的所有其他关系,但这一个我无法理解
谁能给我一个提示吗
到目前为止,我已经:
class A extends B
class D extends C
class C
List<B> bElement;
class D
List<A> aElement;
A类扩展B类
D类扩展了C类
C类
列表标线;
D类
List这意味着较低的关联继承自较高的关联。就像下层阶级继承上层阶级一样
连接器继承的概念仅在最近的UML版本中引入(根据@Henriette从2.0开始的回答)。无论如何,实际上不需要低级关联或它的泛化,因为它和这两个泛化一起继承
就我个人而言,我还没有发现这个概念有什么好的用途,但我知道有人使用它(他们在本体中从事非常高的抽象级别的工作)
另外,除了p。692:
关联线之间的泛化箭头交换为UMLEdges,泛化为modelElements,源和目标交换为UMLEdges,关联(包括显示为线的AssociationClass)为modelElements
关联继承是2005年在UML2.0中引入的。尽管UML可能最常用于面向对象的分析和设计,但它旨在成为一种通用的建模语言。因此,它包括诸如多重继承、属性专门化/细化和关联继承之类的特性,这些特性在编程语言中不一定受支持。然而,在像OWL2这样的本体语言中,这些概念是自然表达的
出于其他一些目的,我写了一篇w.r.t.关联继承和等效UML表示的文章,我在这里提供了这些内容,以防对其他人有所帮助
关于关联和属性,UML规范定义了三个密切相关的概念,即关联专门化
,子集
和重新定义
。关联专门化应用于完全关联的级别,同时进行子集和重新定义
在关联端点和属性级别应用
关联专门化的含义与类的含义相似。也就是说,关联A2
是图(a)中关联A1
的特化。因此,类C3
和C4
实例之间的每个链接都必然是类C1
和C2
实例之间的链接。然而,类C1
和C2
实例之间的每个链接不一定是类C3
和C4
实例之间的链接
由于图(a)中的C3/C4
专门化C1/C2
,因此C1
和C2
之间的所有关联将由C3
和C4
继承。此外,C3
和C4
之间的所有继承关联必然是C1
和C2
之间关联的子集。然而,
图(a)更进一步:不仅关联A1
被C3
和C4
继承,它还引入了一个新关联A2
。由于A2
是一个新的关联,没有关联专门化,人们将无法推断A1
与A2
的关系。因此,在图(a)中,关联继承的目的是引入一个新的关联A2
,并说明它与现有关联A1
的关系
在图(b)中,说明c4{子集c2}
。这意味着关联端c4
表示的实例集合是关联端c2
表示的实例集合的子集。对于关联端点c3
和c1
也是如此。子集
与关联专门化的区别在于,子集只考虑集合成员资格,而关联专门化专门化确定链接成员资格的特征
重新定义用于更改特征的定义。例如,图(c)中关联端c4
重新定义了c2
。重新定义与关联专门化的区别在于,重新定义是为关联端定义的,而不是为完整关联定义的
虽然最初的问题与在继承层次结构中使用的关联继承有关,但注意到在没有继承层次结构的情况下也可以使用关联继承可能会有所启发。在图(d)中,男人与之离婚的所有女人都是他与之结婚的女人的子集
在图(a)和(d)中,协会是该模式的一等公民。因此,它们可以由关联类(A1/A2
和MarriedTo/DivorceFrom
)来表示,关联类之间具有继承关系,尽管使用关联专门化可能比关联类之间的专门化更简洁地表明您专门化关联的意图
总而言之:关联的专门化相当于其目的之一的子集,重新定义可以被视为子集的子概念。你确定它是否是有效的UML吗?它似乎是用UML工具创建的。这里所附的图片有点修改。所以,我猜这是一个有效的方法。所以,这意味着它只用于“图表美”?没有任何东西可以添加到java类中来转换这种关系?在本例中是