我在抽象类中有一个监听器方法:
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
它现在有效,但我对丑陋的演员表不满意。