2010-10-29 77 views
0

我在服務器端有一個重載的查詢方法。我想知道是否可以重載異步回​​調,具體取決於方法簽名?還是建議定義兩個不同的異步回調?這些是我在服務器上的兩種方法。是否有可能重載GWT中的異步回調?

public String fetchInADay(String startTime, String endTime) {}

public String fetchInADay(String startTime, String endTime, String type) {}

順便說一句,請評論:

如果我必須作出兩個不同的回調,這個心不是對OO的原則是什麼?

回答

1

在這種情況下無法重載異步回​​調,因爲onSuccess方法將具有相同的簽名。

您可以將相同的AsyncCallback對象傳遞給多個服務,但它不能告訴哪個服務或函數調用它。如果您希望針對不同的服務調用採用不同的行爲,則需要兩種不同的回調。

1

我假設你打算重用onSuccess(String result)中實現的邏輯。這很好地獨立於您所調用的服務方法。您甚至可以在多個調用中共享相同的實例。

由於javascript是單線程的,因此多個異步調用的響應(onSuccess()調用)不會互相干擾,這是安全的。但由於這些調用的異步性質,它們的回調順序將不能得到保證。