UML建模 - 如何在类图上表示多向继承?

时间:2016-05-09 10:04:28

标签: class inheritance uml modeling class-diagram

这种情况如何以更优雅(和专业)的方式(使用遗产?)表示在类图上?

演员 [class]可以是自然人 [class]或公司 [class],但不能同时为两者。
演员可以是内部演员 [class]或外部演员 [class],但不能两者兼得。
内部演员可以是自然人或公司,但不能同时是两者 外部演员可以是自然人或公司,但不能同时是两者。

当然,在这里,每个所说的类都有其特定的属性,方法以及与图上其他类的关系。

2 个答案:

答案 0 :(得分:1)

如果你不介意多继承,你可以考虑这样的事情:

Multi-Inheritance

(内部演员显示两次以简化图表,它是同一个类。)

答案 1 :(得分:0)

这是一种优雅的方式,用最少的类来表示你想要的UML: enter image description here

由于{complete, disjoint}限制,此模型要求实例恰好是Physical Person Company中的一个,而同时恰好是一个Inner Actor External Actor。底部的实例规范显示了如何实例化它。

UML可以代表这一点没有问题。但是,如何将它映射到编程语言是另一回事。 (以及另一个SO问题。)许多语言不支持实例的多重分类,因此你必须将方形钉子敲入圆孔。