範例:使用物件、物範本或物形式
何時使用物範本?
例如:如果貴公司租賃智慧型連線車輛,您便可使用 GenericThing 物範本作為基礎範本來建立 Vehicle 物範本。根據 Vehicle 物範本,建立 Car 與 Truck 物範本。根據 Car 範本,建立 Electric Car 物範本與 Internal Combustion Car 物範本。根據 Truck 物範本,建立 Tanker Truck 物範本與 Refrigerated Truck 物範本。建立實行這些物範本的個別物件。此情境如下圖所示:
何時使用物形式?
物範本可以實行 0 個、一個或多個「物形式」。
某公司擁有冷藏車 (基於 Truck 物範本) 與冷藏式販賣機 (基於 Vending Machine 物範本)。這兩個實體擁有例如工作溫度、容量、電力消耗與熱輸出等通用內容。請不要定義此行為兩次,高效率的作法是在 Refrigerated Unit 物形式中定義此行為。兩個實體可以重複使用此「物形式」。
物件、物範本與物形式如何共同運作?
下圖說明「物範本」、「物形式」與「物件」共同運作的方式。請注意下列幾點:
• VehicleTemplate 物範本實行系統物範本 RemoteThing 作為基礎範本,並繼承 AssetShape 與 EngineShape 物形式。因此,VehicleTemplate 擁有 RemoteThing 物範本及 AssetShape 與 EngineShape 物形式的所有內容與服務。
• PassengerCarTemplate、TruckTemplate 與 BusTemplate 物範本實行 VehicleTemplate 物範本作為基礎範本。因此,它們繼承了 VehicleTemplate 物範本的所有內容與服務。
• TruckTemplate 與 BusTemplate 物範本繼承 TrackerShape 物形式。除了 VehicleTemplate 物範本的內容以外,它們還擁有 TrackerShape 物形式的內容。
• C1、C2、….、Cn 物件實行 PassengerCarTemplate 作為基礎範本。
• T1、T2、….、Tn 物件實行 TruckTemplate 作為基礎範本。
• B1、B2、….、Bn 物件實行 BusTemplate 作為基礎範本。