Пример. Использование вещей, шаблонов вещей или профилей вещей
Когда используются шаблоны вещей?
Например, если ваша компания арендует подключаемые интеллектуальные механизмы, можно создать шаблон вещи Vehicle, используя шаблон вещи GenericThing в качестве базового шаблона. На основе шаблона вещи Vehicle создайте шаблоны вещей Car и Truck. На основе шаблона Car создайте шаблон вещи Electric Car и шаблон вещи Internal Combustion Car. На основе шаблона вещи Truck создайте шаблон вещи Tanker Truck и шаблон вещи Refrigerated Truck. Создайте отдельные вещи, в которых применяются эти шаблоны вещей. Следующий рисунок иллюстрирует этот скрипт:
Когда используются профили вещей?
В шаблонах вещей может быть применено ни одного, один или несколько профилей вещей.
Компания владеет рефрижераторами (на основе шаблона вещи 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 как базовый шаблон.
Было ли это полезно?