adrão de design para manipular uma resposta assíncrona em Ja
Li respostas de perguntas e respostas semelhantes
Como você cria uma solicitação HTTP assíncrona em JAVA? | Padrão de design de programação assíncrona |
AsyncTask Android - Padrão de design e valores de retorno
Vejo muitas soluções, mas nenhuma me satisfa
Listener way
uando os resultados são capturados, o processamento é implementado no método onResul
public interface GeolocationListener {
public void onResult(Address[] addresses);
public void onError(Exception e);
}
Esta solução não me satisfaz, porque quero lidar com os resultados no método principal. Odeio essa interface porque, quando a resposta é retornada, ela é processada no onResult, resultando em cadeias de processamento e não há como voltar ao método "principal".
A maneira servlet
public class SignGuestbookServlet extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
// ...
resp.sendRedirect("/guestbook.jsp");
}
}
Não há código Java exposto chamando o servlet. Toda a configuração é feita no web.xml
Do jeito que eu quero
Aguarde a resposta como esta
Response a = getResponse();
// wait until the response is received, do not go further
// process
Response b = getResponse();
// wait until the response is received, do not go further
process(a,b);
Existe um padrão de design para lidar com a solicitação assíncrona e aguardar a resposta como acima? Outro caminho que não o ouvinte. Por favor, nenhuma biblioteca ou estrutura.
EDITA Obrigado até agora as respostas. Eu não lhe dei a imagem completa, então expus a classe Geolocation que iniciei a implementação. Não sei como implementar o método. Alguém pode mostrar "como fazer"? Ele (ela) também deve implementar o ouvinte para recuperar os resultados
private Address getFullAddress (String text, AddressListener listener, ... ){
// new Geolocation(text, listener, options).start()
// implements Geolocation.GeolocationListener
// how to return the Address from the onResult ?
}