可以说我有几个传感器。大多数传感器提供 3 个值,例如加速度计。
public class GenericSensor {
double x, y, z;
}
public class Accelerometer extends GenericSensor {
double roll, pitch;
}
每个传感器都有点不同。这就是为什么有些人需要校准而其他人不需要的原因。
我找不到校准值并将原始值保留用于其他目的的好方法。
如果我以后需要它们,它应该可以轻松扩展到其他传感器类型,例如陀螺仪或磁力计。
我的第一次尝试是装饰校准。如果所有传感器都GenericSensor
像这样扩展Accelerometer
,我可以使用CalibratedGenericSensor( GenericSensor s )
. 但是,如果我只将对象提供给其他方法,则访问Acceleromter
其计算的成员值会很麻烦。CalibratedGenericSensor
这就是为什么我认为校准应该像这样更早地进行。
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;
}
你对此有什么想法?或者对于我所缺少的这样的事情是否存在设计模式?
在此先感谢您的时间。