是否有任何编程语言提供这样的东西?
哪里可以使用?
例如:
请注意,somethingStrange不是一个类,它是一个实例(带下划线),这是一个对象图
规范(第7.3.22节)说:
使用与其分类器相同的表示法描述实例规范,但是代替分类器名称会出现实例名称(如果有),冒号(':')和分类器名称的带下划线的串联。
显示多个分类器的惯例是用逗号分隔它们的名称。
所以我坚持使用“多个分类器”。
答案 0 :(得分:0)
这是Dependency
。
依赖关系是一种较弱的关系形式,表明一个类依赖于另一个类,因为它在某个时间点使用它。如果后者是参数变量或前者方法的局部变量,则一个类依赖于另一个类。这与关联不同,前者的属性是后者的实例。
换句话说,您的somethingStance
课程将同时使用Cat
和Panzer
以下只是它的外观示例
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也会尝试尽可能广泛。