1つのパッケージに3つのセンサーがあり、すべてを調整する必要があります。これらをsens1、sens2、およびsens3と呼びます。sens1とsens2のキャリブレーションは同じですが、sens3のキャリブレーションには追加のパラメーターが必要です。私の質問は、「読みやすさを維持しながら、ほぼ同一の3つのオブジェクトを処理する最良の方法は何ですか?」です。
もちろん、最初に考えたのは、ポリモーフィズムを使用することでした。汎用のSensorオブジェクトを.calibrate(Parameters params)メソッドでセットアップします。ここで、Parametersクラスを使用すると、実行しているキャリブレーションに基づいてパラメーターの数を変更できます。ただし、これにより次のようになります。
Sensor sens1 = new Sensor();
Sensor sens2 = new Sensor();
Sensor3 sens3 = new Sensor3();
将来の人々は、1つのセンサーが他の2つのセンサーと根本的に異なることを知る必要がありますが、非常によく似ているため、Sens1とSens2を名前だけでサブクラス化するのが最善のようです。言い換えると、より論理的なクラス名を持たせるために、動作を変更または拡張しない2つのサブクラスを作成します。これらの3つのセンサーはすべて同じパッケージに含まれているため、このデータは非常に頻繁に組み合わされます。これにより、上記のコードが次のように変更されます。
Sensor1 sens1 = new Sensor1();
Sensor2 sens2 = new Sensor2();
Sensor3 sens3 = new Sensor3();
どこ
Sensor1 extends Sensor {
}
Sensor2 extends Sensor {
}
Sensor3 extends Sensor {
@Override
calibrated(Parameters params) {
\\ Code
}
}
これは良い考えだと私は夢中ですか?ここで完全に見落としているきれいなパターンはありますか?