接口回调

博客原文地址 http://ifeve.com/%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA%EF%BC%9A-java%E5%9B%9E%E8%B0%83%E6%9C%BA%E5%88%B6%E5%BC%82%E6%AD%A5/

近几天刚接触接口回调,一头雾水,看了这篇文章,有助理解

一,创建回调接口

public interface CSCallBack {
    public void process(String status);
}

二,创建服务端(提供给客户端需求信息)

public class Server {

    public void getClientMsg(CSCallBack csCallBack , String msg) {
        System.out.println("服务端:服务端接收到客户端发送的消息为:" + msg);

        // 模拟服务端需要对数据处理
        try {
            Thread.sleep(5 * 1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("服务端:数据处理成功,返回成功状态 200");
        String status = "200";
       // csCallBack.process(status);
    }
}

在服务端里创建一个方法,将接口以参数的形式传给服务端,这一步是为了注释掉的那句话,便于进行相关处理后,将得到的数据信息通过客户端中的接口实现方法的调用将数据传送给客户端。有点比较拗口,好好理解一下。

三,创建客户端(所谓客户端可以理解为有功能需求的一方)

public class Client implements CSCallBack {

    private Server server;

    public Client(Server server) {
        this.server = server;
    }

    public void sendMsg(final String msg){
        System.out.println("客户端:发送的消息为:" + msg);
        new Thread(new Runnable() {
            @Override
            public void run() {
                server.getClientMsg(Client.this,msg);
            }
        }).start();
        System.out.println("客户端:异步发送成功");
    }

    @Override
    public void process(String status) {
        System.out.println("客户端:服务端回调状态为:" + status);
    }
}

在这里要实例化服务端,当我们需要通过客户端得到某些信息的时候,就调用服务端的getClientMsg()方法,并且将接口作为参数传入,

四,在服务端进行一系列操作后,得到了客户端所需结果后,通过客户端规定的途径即接口的实现方法,将所得信息返回给客户端

#class server
#注释掉的内容

csCallBack.process(status);

这就完成了接口的回调。

五。测试

public class CallBackTest {
    public static void main(String[] args) {
        Server server = new Server();
        Client client = new Client(server);

        client.sendMsg("Server,Hello~");
    }
}

六,测试结果

    客户端:发送的消息为:Server,Hello~
    客户端:异步发送成功
    服务端:服务端接收到客户端发送的消息为:Server,Hello~

    (这里模拟服务端对数据处理时间,等待5秒)
    服务端:数据处理成功,返回成功状态 200
    客户端:服务端回调状态为:200

七,整体流程

1,客户端实现接口,自身能作为接口变量传入。

2,客户端通过调用服务端中的方法,将接口和信息传给服务端,(告诉你要对我给你的这段信息进行相关处理,处理完成后要通过这个接口中的方法告诉我你干完了,我好进行先一步操作)

3,服务器接收到信息,进行相应的处理,并在处理完成后,调用接口中的方法告诉客户端我做完了,同时将处理得到的结果返回给客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值