示例:使用事物、事物模板或事物形态
何时使用事物模板?
例如:如果您的公司出租智能互联汽车,则可以通过将 GenericThing 事物模板用作基本模板来创建 Vehicle 事物模板。根据 Vehicle 事物模板,创建 CarTruck 事物模板。根据 Car 模板,创建 Electric Car 事物模板和 Internal Combustion Car 事物模板。根据 Truck 事物模板,创建 Tanker Truck 事物模板和 Refrigerated Truck 事物模板。创建可实现这些事物模板的单个事物。下图说明了这种情况:
何时使用事物形态?
事物模板可实现零个、一个或多个事物形态。
公司拥有冷藏车 (基于 Truck 事物模板) 和冷藏型自动售货机 (基于 Vending Machine 事物模板)。这两个实体具有公用属性,例如工作温度、容量、功耗和热输出等。最好在 Refrigerated Unit 事物形态中定义此行为,而无需定义两次。这种事物形态可由两个实体重用。
事物、事物模板和事物形态是如何协同工作的?
下图展示了事物模板、事物形态和事物的协同工作方式。请注意以下几点:
VehicleTemplate 事物模板将系统事物模板 RemoteThing 实现为基本模板,并且会继承 AssetShapeEngineShape 事物形态。因此,VehicleTemplate 具有 RemoteThing 事物模板以及 AssetShapeEngineShape 事物形态的所有属性和服务。
PassengerCarTemplateTruckTemplateBusTemplate 事物模板将 VehicleTemplate 事物模板实现为基本模板。因此,它们会继承 VehicleTemplate 事物模板的所有属性和服务。
TruckTemplateBusTemplate 事物模板会继承 TrackerShape 事物形态。除了 VehicleTemplate 事物模板的属性外,它们还具有 TrackerShape 事物形态的属性。
事物 C1C2、...、CnPassengerCarTemplate 实现为基本模板。
事物 T1T2、...、TnTruckTemplate 实现为基本模板。
事物 B1B2、...、BnBusTemplate 实现为基本模板。