在UML中,实例可以实现多于1个分类器意味着什么?

时间:2012-03-26 12:47:43

标签: class uml instance

是否有任何编程语言提供这样的东西?

哪里可以使用?

例如:

enter image description here

请注意,somethingStrange不是一个类,它是一个实例(带下划线),这是一个对象图

规范(第7.3.22节)说:

使用与其分类器相同的表示法描述实例规范,但是代替分类器名称会出现实例名称(如果有),冒号(':')和分类器名称的带下划线的串联。

显示多个分类器的惯例是用逗号分隔它们的名称。

所以我坚持使用“多个分类器”。

4 个答案:

答案 0 :(得分:0)

这是Dependency。 依赖关系是一种较弱的关系形式,表明一个类依赖于另一个类,因为它在某个时间点使用它。如果后者是参数变量或前者方法的局部变量,则一个类依赖于另一个类。这与关联不同,前者的属性是后者的实例。

换句话说,您的somethingStance课程将同时使用CatPanzer

以下只是它的外观示例

Public class SomethingStrange{
     public Cat CatDependency{get;set;}
     public Panzer PanzerDependency{get;set;}   

}

答案 1 :(得分:0)

如果你指的是类,那就是多重继承(除了你应该使用实边来进行泛化),nothing wrong with that;)

请注意,接口也是一个分类器,因此您的问题文本也需要进行一些改进 - 毕竟,通用化多个接口并没有错。

答案 2 :(得分:0)

任何具有扩展而非内涵类型的语言都将允许这样的结构。

例如,在RDF中,两个来源可以声称关于完全冲突的网络资源,或者在“鸭子”语言中,一个对象可以具有两个不相关的类型的所有特征。

扩展语言通过它们的属性对对象进行分类 - 如果它有叉子,它是叉子,如果它有一个把柄而碗是勺子,如果它有叉子和碗,它既是叉子也是勺子。“ p>

这些语言与面向类的内容语言(例如UML更常用的C ++ / Java / C#)之间的区别在于,您不需要spork类来定义勺子和分叉的东西 - 无论是什么东西属于分类器的定义是它们是否符合分类器的要求。

答案 3 :(得分:0)

UML允许对象同时是几个不同类的实例(即使它们是不相关的)。事实上,这不是通常的惯例,也不受编程语言的支持,这是一个不同的问题。即使特定技术只能实现其子集,UML也会尝试尽可能广泛。