如何编写回调函数?
回调函数其实就是将某个特定接口的实现作为参数传入目标对象,让目标对象在适当的时候对齐进行调用。
Response
接口包含了两个方法:success
和fail
,分别需要在请求成功和失败时调用,但是具体这两个方法需要做写什么事情,这在接口的定义中是无从知道的,因为这是根据每个发送请求的主体的具体情况而确定的。
Request
是发送请求类,是执行人物的主体,在其send(Response response)
方法中,会接受一个Response
接口的实现,并在请求完成后,根据请求的结果调用Response
中相应的方法。
CallbackSample
是测试的主体,在main
函数中,产生一个Request
对象,然后调用其send
方法,同时传入一个匿名类实现了Response
接口。
1 2 3 4 5 6 7 8 9
|
public interface Response {
void success();
void fail(); }
|
1 2 3 4 5 6 7 8 9 10 11
|
public class Request {
public void send(Response response) { System.out.println("Send Request");
response.fail(); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
public class CallbackSample {
public static void main(String[] args) { Request request = new Request(); request.send(new Response() { @Override public void success() { System.out.println("Request Success"); }
@Override public void fail() { System.out.println("Request Fail"); } }); } }
|
以下是输出:
1 2
| Send Request Request Fail
|