[英]Does combining composition with association still follow the rules of OOP?
这种组合和关联的组合在 UML 中是完全合法的,不会破坏 OOP。UML 在这方面只有几个约束:
复合聚合是一种强聚合形式,它要求一次最多将一个部分 object 包含在一个复合 object 中。
组合可以在具有传递删除特性的有向无环图中链接;
如果关联是二进制的并且另一端未标记为共享或复合聚合,则关联的端属性只能标记为共享或复合聚合。
前两个限制在 object 级别,不一定在 class。最后一个限制是针对 class 图:它说同一个关联不能在两端有复合或共享聚合。 这些限制都与您的图表无关。
问题是这张图没有表达你的想法。 它说一辆Car c
由一个Engine e
和一个Fueltank f
组成; 它还说e
与 Fueltank 聚合在一起,这可能是巧合的 f,但也可能是另一个Fueltank
,甚至是另Car
的Fueltank
。 model 并不能很好地表示类之间的三角关系。 这里有一些提示:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.