Oop 如何表示传感器和执行器,两者都可以是数字和模拟的?
我在做这个项目,和硬件相连,特别是传感器和执行器。传感器和执行器都可以是数字和模拟的。所有四种类型的示例:Oop 如何表示传感器和执行器,两者都可以是数字和模拟的?,oop,design-patterns,uml,class-diagram,Oop,Design Patterns,Uml,Class Diagram,我在做这个项目,和硬件相连,特别是传感器和执行器。传感器和执行器都可以是数字和模拟的。所有四种类型的示例: 数字传感器:返回几种可能的状态之一(即“存在”/“不存在”/“无法发现”) 模拟传感器:返回范围内的任何值,但结果根据刻度间隔进行四舍五入(即温度传感器返回0到60摄氏度之间的任何值,精度为一位数,例如18.5摄氏度) 数字执行器:可以获得几种可能的状态之一(即打开车窗的电机,可以将车窗设置为“打开”/“半打开”/“关闭”) 模拟执行器:可以从范围中获取任何值,并且该值也可以根据刻度间隔
- 数字传感器:返回几种可能的状态之一(即“存在”/“不存在”/“无法发现”)
- 模拟传感器:返回范围内的任何值,但结果根据刻度间隔进行四舍五入(即温度传感器返回0到60摄氏度之间的任何值,精度为一位数,例如18.5摄氏度)
- 数字执行器:可以获得几种可能的状态之一(即打开车窗的电机,可以将车窗设置为“打开”/“半打开”/“关闭”)
- 模拟执行器:可以从范围中获取任何值,并且该值也可以根据刻度间隔进行四舍五入(即,风扇每秒旋转次数可以从0到10,例如9.5)
谢谢你的帮助 我将通过使用两种不同的操作返回模拟值或数字值来解决这个问题。原因很简单,你不会真的把它们混在一起。如果您读取温度,您将
readAnalog()
获取值,对于开关,您将调用readBinary()
。通过这种方式,您可以实现从二进制读取浮点将引发异常
另外,我不会在
设备中混用这个。执行器和传感器非常不同,它们可能继承的唯一东西是塑料外壳(甚至看起来很奇怪) 我终于找到了解决办法。
在我的具体案例中,传感器和执行器类只是关于当前值和套接字端口号的数据的抽象。所以我决定摆脱这种差异,为传感器和执行器制作一个类。离散和连续设备都有自己的类别
设计就是妥协(没有完美的解决方案)。我首先来看一个需要使用这些元素的应用程序。您需要添加新的实现类型,还是元素集是固定的?敏捷方法将使其保持简单(不要在应用程序中添加超出您需要的内容)。让您的设计在应用程序运行时显现出来。