データベースからデータを収集するスレッドをいくつか作成しています。
ただし、これらすべてのスレッドで、Database
オブジェクトへのローカル参照が必要になります。これを行うには、インターフェイスを使用する方法が 2 つあります。
public interface Command {
void execute();
void collectData();
void processData();
void setData(ArrayList<Objects> data);
}
次に、各 thead クラスで変数を手動で設定します (コマンド インターフェイスを拡張します)。
ただし、テストと検索を行うと、次のことができることがわかりました。
public abstract class commandtest implements Runnable{
Database db;
abstract void execute();
abstract void collectData();
abstract void processData();
abstract void setData(ArrayList<Objects> data);
}
ここでは、各スレッド オブジェクトを拡張できる抽象クラスを作成し、必要な変数を設定するコンストラクターを作成します。
私の質問はどちらかといえば単純ですが、これら 2 つの方法のどちらが最善の方法ですか?