私は次のことになっているコンポーネントに取り組んでいます:
外部の計算コンポーネントからデータ(アイテムのコレクション)を受け取ります。私は、各リクエストの入力で約100〜1Kのアイテムを期待しています。
データを検証し、欠落している場合はいくつかの属性を計算します
データを永続化する
アイテムは約10種類あります。アイテムをモデル化するために継承を使用します。共通の属性と計算を備えた基本アイテムクラスと、タイプ固有の問題を実装するサブクラスがあります。次の例と同様です。
public abstract class BaseItem {
String name;
boolean valid = true;
public void postCalucate() {
//common calculation
valid = valid && (name != null);
}
}
public class ItemA extends BaseItem {
BigDecimal value;
@Override
public void postCalucate() {
//some A specific calculations
super.postCalucate();
}
}
public class ItemA1 extends ItemA {
BigDecimal extraValue;
@Override
public void postCalucate() {
//some A1 subtype specific calculations
valid = isA1ItemValid();
super.postCalucate();
}
}
public class ItemB extends BaseItem {
Integer size;
@Override
public void postCalucate() {
//some B specific calculations
super.postCalucate();
}
}
私の仕事をするためのより良い方法/パターンはありますか?何かアドバイスはありますか?