私の現在のプロジェクトでは、すべてのセンサードライバーの統一されたインターフェイスを作成しようとしています。
たとえば、Temperature sensor
そこからデータを取得するための温度センサードライバーがあります。
さて、私の問題は、独自のデータオブジェクトを持つ各センサーの応答です。次の温度センサーの例を書きました。センサードライバーのインターフェイスを統一するにはどうすればよいのでしょうか。プログラマーはSensorResonseのみを知っている必要があります(ではありませんTempSensorResponse
)。
public class TempSensor implements Sensor {
/**
* Returns a SensorInfo object that describes this sensor.
*/
@Override
public TempSensorInfo getSensorInfo() {
// TODO Auto-generated method stub
return null;
}
/**
* Asks the sensor for a (possibly old) datapoint. Synchronous: returns
* immediately, even if that means returning an old value.
*/
@Override
public TempResponse getData() {
// TODO Auto-generated method stub
return null;
}
/**
* Asks the sensor for a new datapoint. Asynchronous.
*
* @param handler A Handler object to be executed when the sensor has a
* new value. If this Sensor is event-based, this method starts listening
* for data, and calls the handler whenever new events are detected.
*/
@Override
public void getData(SensorListener handler) {
// TODO Auto-generated method stub
}
}
/ ** * SensorResponseは、センサーがデータを要求されるたびに*センサーが呼び出し先に渡す応答です。これは、この応答を生成したセンサーのSensorInfoなど、センサーデータ自体とそれに関するメタデータの両方を保持します。* /
public class TempResponse extends SensorResponse {
public TempResponse(TempSensorInfo sensorInfo, TempSensorData payload) {
super(sensorInfo, payload);
// TODO Auto-generated constructor stub
}
}