2010-10-29 74 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()调用)不会互相干扰,这是安全的。但由于这些调用的异步性质,它们的回调顺序将不能得到保证。