Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 传感器校准设计模式_Java_Oop_Design Patterns_Sensors_Calibration - Fatal编程技术网

Java 传感器校准设计模式

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; } 每个传感器都有点不同。这就是为什么有些需要校准,而另一些则不需要 我找不到很好的方法来校准这些值并保留原始值用于其他目的 它应该很容易扩展到其他传感器类型,如陀螺仪或磁强计,如果我以后

假设我有几个传感器。大多数传感器像加速计一样提供3个值

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)