抽象クラスにリスナーメソッドがあります。
public void AsyncTaskListener(AbstractModel result){
とフックの束:
protected void RecieveModelAHook(ConcreteModelA){}
protected void RecieveModelBHook(ConcreteModelB){}
protected void RecieveModelCHook(ConcreteModelC){}
これで、AsyncTaskListenerが呼び出されたときに、呼び出すフックを決定する必要があります。現時点では、次のように解決しました。
public void AsyncTaskListener(AbstractModel result){}
if(result instanceof ConcreteModelA){
RecieveModelAHook((ConcreteModelA) result);
}
if(result instanceof ConcreteModelB){
RecieveModelBHook((ConcreteModelB) result);
}
}
より良い解決策はありますか?それともそのようなもののパターンですか?
AsyncTaskはさまざまなJSON文字列を読み取り、そこからConcreteModelA、ConcreteModelBなどのモデルを作成します。すべてのクライアントが異なる結果を処理できるはずなので、フックが必要です。
AsyncTaskには、リクエストタイプがあります。リクエストタイプ1はConcreteModelAを作成しますリクエストタイプ2はConcreteModelBを作成します
今のところは機能しますが、醜いキャスティングには満足していません。