UML属性赋值:单Wheel类下汽车2雪地胎2标准胎建模方法
UML建模方案
核心思路
不派生子类的前提下,通过给Wheel类增加类型标识属性,并在关联上添加数量约束,实现“汽车必须配备2个雪地轮胎+2个标准轮胎”的要求。
步骤1:定义车轮类型枚举
先创建枚举明确车轮的两种类型:
enum WheelType { Standard, // 标准轮胎 Snow // 雪地轮胎 }
步骤2:修改Wheel类结构
给Wheel类添加类型属性,绑定上述枚举:
class Wheel { - type: WheelType // 标识当前车轮的类型 }
步骤3:添加关联约束(两种可选方式)
方式一:直观标注多重性条件
在Car与Wheel的聚合关联上,对Wheel端的多重性补充类型数量约束,UML图示如下:
1 4 {2 of type=Standard, 2 of type=Snow} Car <>---------------------- Wheel
说明:此方式用自然语言约束明确要求4个车轮中,必须恰好2个为标准类型、2个为雪地类型,属于UML中直观的标注形式。
方式二:OCL形式化约束验证
如果需要更严谨的规则校验,可在关联旁添加OCL(对象约束语言)表达式:
1 4 Car <>---------------------- Wheel <<constraint>> { self.wheels->select(w | w.type = WheelType::Standard)->size() = 2 and self.wheels->select(w | w.type = WheelType::Snow)->size() = 2 }
说明:OCL约束会强制检查Car实例的wheels集合中,标准轮胎和雪地轮胎的数量必须各自等于2,适合需要严格验证的场景。
内容的提问来源于stack exchange,提问作者sayanel
相关产品推荐
相关产品推荐

