【发布时间】:2013-06-18 02:30:18
【问题描述】:
我正在开发一个应用程序来连接基于蓝牙的多传感器 (SensorDrone)。它总共包含大约 15 个传感器,所有这些传感器都可以使用芯片制造商创建的第三方闭源库与 Android 设备通信。
第三方库要求我实现一个自定义 Java EventListener,其中包含每个传感器的函数,当其数据可供使用时触发:
DroneEventListener droneEventListener = new DroneEventListener() {
@Override
public void temperatureMeasured(EventObject arg0) {
readTemperatureFromDrone();
}
@Override
public void pressureMeasured(EventObject arg0) { /*...*/ }
// Etc...
@Override
public void disconnectEvent(EventObject arg0) {
// Let the user know the bluetooth connection was lost
}
@Override
public void connectEvent(EventObject arg0) {
// Let the user know the device was connected
}
};
但是,我希望使用另一个名为 funf 的库来从 Android 的内置传感器获取信息。该库非常适合为内置 Android 传感器和外部传感器收集数据。它通过允许您创建自定义“Probe”实现来做到这一点。但是,探针意味着(根据图书馆和惯例的建议)一次仅用于一个传感器。
原问题:
所以,我的问题是这样的;是否有可能以某种方式将 DroneEventListener() 类细分为特定的传感器?之后,我可以轻松地为多传感器上的每个传感器创建一个自定义探针。
我意识到尝试细分抽象类可能是一种不好的做法,因为它在概念上是开发人员的合同。但是,我觉得通过一个温和的 hack 来让这个代码与一个预先存在的、可靠的和维护良好的库 (funf) 一起工作是值得的。
或者,是否有任何其他创造性的解决方案可以让我将制造商的库与 funf 一起使用?
编辑(2013 年 6 月 24 日):
我决定我对“细分”一词的使用只有我自己清楚。我的意思是,当我只使用一个时,我不想实现 20 多岁的空白方法。选择的答案准确地解释了如何做到这一点。
提炼问题:
是否可以只实现 EventListener 中的一个函数(具有多个函数)而不必实现杂乱的空方法?
【问题讨论】:
标签: java sensors android-sensors event-listener