この質問の範囲を超える理由により、データベースを変更できないことを述べることから始めたいと思います。
そうは言っても、問題は、ほぼ同じプロパティを持つ 2 つのデータベース オブジェクト (T1、T2) があり、それらが同じ UI コードとビジネス ロジックを共有していることです。構成オプションに応じて、UI が T1 データまたは T2 データを表示することを意味します。データを管理するためのロジックもすべて同じです。
私が望んでいなかったのは、アプリケーション ロジック コードにinstanceof
演算子が散らばり、基本的に 2 セットの同一コードを管理することでした。したがって、私の解決策は、T1 または T2 のいずれかをコンストラクターとして使用する一種のラッパー クラス (TCombo) を作成することでした。すべてのゲッターとセッターのデザインは似ています
public String getProp1() {
if(o instanceof T1) ((T1)o).getProp1();
else(o instanceof T2) ((T2)o).getProp1();
}
基本的にはセッターについても同様なので、値を設定するとDBオブジェクトが正しく設定されます。これを行うことで、1 セットのコードを使用して、コード全体でこの TCombo クラスを管理するだけで済み、これはうまく機能しました。問題は、効率がひどいことです。私のアプリケーションは大規模なデータセットを扱うため、データセット内のすべてのアイテムに対してこの TCombo クラスを作成する必要があるため、読み込み時間が非常に長くなります。
私の質問は次のとおりです。これらのクラスを管理する最良の方法は何ですか?2 セットのロジック コードを維持する必要がなく、速度も向上しますか?