Java 传感器校准设计模式
假设我有几个传感器。大多数传感器像加速计一样提供3个值Java 传感器校准设计模式,java,oop,design-patterns,sensors,calibration,Java,Oop,Design Patterns,Sensors,Calibration,假设我有几个传感器。大多数传感器像加速计一样提供3个值 public class GenericSensor { double x, y, z; } public class Accelerometer extends GenericSensor { double roll, pitch; } 每个传感器都有点不同。这就是为什么有些需要校准,而另一些则不需要 我找不到很好的方法来校准这些值并保留原始值用于其他目的 它应该很容易扩展到其他传感器类型,如陀螺仪或磁强计,如果我以后
public class GenericSensor {
double x, y, z;
}
public class Accelerometer extends GenericSensor {
double roll, pitch;
}
每个传感器都有点不同。这就是为什么有些需要校准,而另一些则不需要
我找不到很好的方法来校准这些值并保留原始值用于其他目的
它应该很容易扩展到其他传感器类型,如陀螺仪或磁强计,如果我以后需要的话
我的第一次尝试是装饰校准。如果所有传感器像加速计一样扩展通用传感器
,我可以使用校准通用传感器(通用传感器s)
。但是,如果我只向其他方法提供CalibredGenericsSensor
对象,访问Acceleromter的计算成员值会很麻烦
这就是为什么我认为应该像这样更早地进行校准
public class GenericSensor {
double x, y, z;
}
public class CalibratedGenericSensor extends GenericSensor {
double calX, calY, calZ
@Override
double getX() { return calX; }
@Override
void setX( double x ){ super.setX(x); calX = calibrate(x); }
double getRawX() { return super.getX(); }
}
public class Accelerometer extends CalibratedGenericSensor {
double pitch, roll;
}
你对此有什么想法?或者我所缺少的东西是否存在这样的设计模式
提前感谢您的时间。这些课程将如何使用?尝试先编写调用该类的代码,然后您就会知道API需要什么
例如,可能一个GenericSensor需要一个showCalibrationView方法,允许用户对其进行校准。“尝试先编写调用该类的代码,然后您就会知道API需要什么。”正确完成。看起来并不是很理想,但它确实有效。(由于代表不足,无法+1)