0
我有一個抽象類的監聽方法:基於ModelClass的調用掛鉤。解決方案然後鑄造
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
它現在可行,但我不滿意醜陋的鑄造。