Ejemplo: Utilización de cosas, plantillas de cosa o definiciones de cosa
¿Cuándo se utilizan plantillas de cosa?
Por ejemplo: si la empresa alquila vehículos inteligentes conectados, se puede crear una plantilla de cosa Vehicle con la plantilla de cosa GenericThing como plantilla base. En función de la plantilla de cosa Vehicle, cree las plantillas de cosa Car y Truck. En función de la plantilla Car, cree una plantilla de cosa Electric Car y una plantilla de cosa Internal Combustion Car. En función de la plantilla de cosa Truck, cree una plantilla de cosa Tanker Truck y una plantilla de cosa Refrigerated Truck. Cree cosas individuales que implementen estas plantillas de cosa. En la siguiente imagen se muestra este escenario:
¿Cuándo se utilizan las definiciones de cosa?
Las plantillas de cosa pueden implementar cero, una o varias definiciones de cosa.
Una empresa es propietaria de camiones refrigerados (basada en una plantilla de cosa Truck) y máquinas expendedoras refrigeradas (basada en una plantilla de cosa Vending Machine). Estas dos entidades tienen propiedades comunes como, por ejemplo, la temperatura de funcionamiento, la capacidad, el consumo de energía y la salida de calor. En lugar de definir este comportamiento dos veces, es eficaz definirlo en una definición de cosa Refrigerated Unit. Esta definición de cosa se puede reutilizar en ambas entidades.
¿Cómo funcionan las cosas, las plantillas de cosa y las definiciones de cosa en combinación?
En la siguiente imagen se muestra cómo funcionan conjuntamente las plantillas de cosa, las definiciones de cosa y las cosas. Se deben tener en cuenta lo siguiente:
La plantilla de cosa VehicleTemplate implementa la plantilla de cosa del sistema RemoteThing como plantilla base y hereda las definiciones de cosa AssetShape y EngineShape. Como resultado, VehicleTemplate incluye todas las propiedades y los servicios de la plantilla de cosa RemoteThing, y las definiciones de cosa AssetShape y EngineShape.
Las plantillas de cosa PassengerCarTemplate, TruckTemplate y BusTemplate implementan la plantilla de cosa VehicleTemplate como plantilla base. Como resultado, heredan todas las propiedades y los servicios de la plantilla de cosa VehicleTemplate.
Las plantillas de cosa TruckTemplate y BusTemplate heredan la definición de cosa TrackerShape. Además de las propiedades de la plantilla de cosa VehicleTemplate, tienen las propiedades de la definición de cosa TrackerShape.
Las cosas C1, C2, ..., Cn implementan PassengerCarTemplate como plantilla base.
Las cosas T1, T2, ..., Tn implementan TruckTemplate como plantilla base.
Las cosas B1, B2, ..., Bn implementan BusTemplate como plantilla base.