假设我有一些传感器。大多数传感器提供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;
}
您对此有何看法?或者这样的事情是否存在我缺少的设计模式?
提前感谢您的时间。
答案 0 :(得分:0)
这些课程将如何使用?尝试首先编写将调用该类的代码,然后您将知道API需要什么。
例如,GenericSensor可能需要showCalibrationView方法,允许用户校准它。