【发布时间】:2019-05-12 15:37:28
【问题描述】:
我正在寻找一些设计模式来以灵活的方式实现物联网设备接口。
场景是: 我们有一组具有一些共同功能的设备(比如不同的温度传感器)......
StartMeasurement - 开始温度读数。
设备类型因专业而异。第二种设备类型另外实现了一种配置温度分辨率的方法。
把这个设备层次结构写成接口类很容易:
interface BasicTempSensor
{
StartMeasurement()
}
interface ConfigureableSensor : public BasicTempSensor
{
ConfigureResolution(config)
}
现在,这些设备应该作为物联网设备连接。我们想使用 Microsoft IoT 设备 SDK。在它的基础上,它提供了一种为设备注册方法(按名称)和注册相应回调的方法。 -> 一般来说,它是通信层,它提供发送和接收命令和消息的功能。
问题是: 我正在寻找一种方法来为上层的通信层进行良好而灵活的抽象。还应考虑通用接口结构。 有没有设计模式可以做这样的抽象?
我的第一种方法是在设备和应用程序端实现所示的接口结构。接口实现映射到可以通过通信层发送的命令。 (适配器模式?)
我还查看了http://johnny-five.io/ 框架。在应用程序方面,设备功能是从小的基本类构建的。不知道它是如何在设备端实现的。 也许这个方向的一些信息也有帮助。
简而言之: 我正在寻找实现类型安全设备 api 描述的模式,该描述还以多态方式涵盖设备的公共部分。
谢谢。 东武
【问题讨论】:
-
基本上,您想开发一个可用于交互、使用和管理物联网设备的应用程序?如果是,那么在高层次上,您需要首先将应用程序划分为模块化功能,如发现、连接、getSensorReadings、管理等。
-
是的,我想开发一个应用程序来管理物联网设备并与之交互。每个设备的接口是我的问题。如何按照上述要求来描述和设计这些设备的接口?
-
抽象出IoTDevice的通用属性和操作,如name、macId、deviceState、operation、sensorReading等。另外,在组合中使用设备的行为会做出简洁的设计(策略模式)。
标签: design-patterns iot communication api-design