关于car和wheel的经典聚合例子。一辆车有 4 个轮子,轮子属于一辆车 :
1 4
Car <>------ Wheel
现在,车轮可以是标准轮胎,也可以是雪地轮胎。
在保持一个车轮等级的约束下(例如,没有派生
snowWheel
),我如何建模汽车必须有 2 个雪地轮胎和 2 个标准轮胎?
编辑:编辑删除“强制”布尔属性
你必须给关联附加一个约束。这可以简单地写成附加注释,在大括号中包含文本,如
{must have this and that sort of tyres}
。这也可以用 OCL 编写,但我对此不是很坚定,仍然认为它更多的是学术水平而不是实践水平。
当然,您可以使用不同的轮胎专业化和使用泛化子集来扩展您的模型。取决于您的需求。