Esempio: utilizzo di oggetti, modelli di oggetto o thing shape
Quando si usano i modelli di oggetto?
Ad esempio, in un'azienda che noleggia veicoli intelligenti connessi si può creare un modello di oggetto Vehicle utilizzando il modello di oggetto GenericThing come modello di base. In base al modello di oggetto Vehicle, si creano modelli di oggetto Car e Truck. In base al modello di oggetto Car, si crea un modello di oggetto Electric Car e un modello di oggetto Internal Combustion Car. In base al modello di oggetto Truck, si crea un modello di oggetto Tanker Truck e un modello di oggetto Refrigerated Truck. Quindi si creano singoli oggetti che implementano questi modelli di oggetto. L'immagine seguente illustra lo scenario descritto di seguito.
Quando si usano le Thing shape?
I modelli di oggetto possono implementare 0, una o più Thing shape.
Un'azienda possiede autocarri refrigerati (basati su un modello di oggetto Truck) e distributori automatici refrigerati (basati su un modello di oggetto Vending Machine). Queste due entità hanno proprietà comuni quali temperatura di funzionamento, capacità, consumo di energia e potenza termica. Anziché definire questo comportamento due volte, è possibile definirlo in una Thing shape Refrigerated Unit che può essere riutilizzata da entrambe le entità.
Come interagiscono tra loro oggetti, modelli di oggetto e Thing shape?
Nell'immagine seguente viene illustrato come oggetti, modelli di oggetto e Thing shape interagiscono tra loro. Notare i punti riportati di seguito.
Il modello di oggetto VehicleTemplate implementa il modello di oggetto di sistema RemoteThing come modello di base ed eredita le Thing shape AssetShape ed EngineShape. Di conseguenza, VehicleTemplate include tutte le proprietà e tutti i servizi del modello di oggetto RemoteThing e delle Thing shape AssetShape ed EngineShape.
I modelli di oggetto PassengerCarTemplate, TruckTemplate e BusTemplate implementano il modello di oggetto VehicleTemplate come modello di base. Di conseguenza, ereditano tutte le proprietà e tutti i servizi del modello di oggetto VehicleTemplate.
I modelli di oggetto TruckTemplate e BusTemplate ereditano la Thing shape TrackerShape. Oltre alle proprietà del modello di oggetto VehicleTemplate, presentano le proprietà della Thing shape TrackerShape.
Gli oggetti C1, C2, …., Cn implementano PassengerCarTemplate come modello di base.
Gli oggetti T1, T2, …., Tn implementano TruckTemplate come modello di base.
Gli oggetti B1, B2, …., Bn implementano BusTemplate come modello di base.