我正在从事与硬件相关的项目,尤其是传感器和执行器。传感器和执行器都可以是数字的和模拟的。所有四种类型的示例:
- 数字传感器:返回几种可能状态中的一种(即“存在”/“不存在”/“找不到”)
- 模拟传感器:返回范围内的任何值,但结果根据刻度间隔进行舍入(即温度传感器返回 0 到 60 摄氏度之间的任何值,精度为一位数,例如 18.5 C)
- 数字执行器:可以获得几种可能的状态之一(即电机,打开窗口,可以设置窗口“打开”/“半打开”/“关闭”)
- 模拟执行器:可以获取范围内的任何值,并且值也根据刻度间隔四舍五入(即风扇每秒转数可以是 0 到 10,例如 9.5)
问题是,我如何在不违反 OOP 原则的情况下表示这些类,至少使设计清晰和合乎逻辑。
我的一个解决方案在图片上:
但我觉得这个方案“丑”
下一个解决方案在这里:
这个解决方案也很糟糕,因为冗余属性和不统一的方法名称。
你有什么建议?也许存在解决我的问题的设计模式? 感谢您的帮助!
最佳答案
终于找到解决方案了。 在我的具体案例中,Sensor 和 Actuator 类只是对有关当前值和套接字端口号的数据的抽象。所以我决定摆脱差异并为传感器和执行器创建一个类。离散和连续设备都有自己的类别。
关于oop - 如何表示既可以是数字也可以是模拟的传感器和执行器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760173/