java 回调函数 Callback的使用

一、回调函数简要

回调函数其实是一种编程思想,尤其是在服务端或者B端开发会大量使用到。之前写了不少项目代码,但是大多都是C端,最近接触了一个服务端项目,里面设计到大量的这种思想。现在记录一下,通过代码应该很好理解这种模式.

二、代码

/**
 *  顶层接口
 */
public interface Callback {
}
//===============================
/**
 *  具体消息回调接口
 */
public interface MessageCallback<T> extends Callback {
    /**
     *
     * @param msg 消息
     * @param account 用户
     */
    void onSuccess(T msg,T account);

    void onFail(T msg,T account);
    
    //...断线重连etc
}
//=====================================
/**
 *  消息客户端
 */
public class MessageClient implements MessageCallback<String> {

    private String msg;

    private String account;

    public MessageClient(String msg, String account) {
        this.msg = msg;
        this.account = account;
    }

    @Override
    public void onSuccess(String msg, String account) {
        System.out.println("进入回调函数--"+"消息推送成功,"+"客户是:"+account+" 推送的消息是:"+msg);
    }

    @Override
    public void onFail(String msg, String account) {
        System.out.println("进入回调函数--"+"消息推送失败,"+"客户是:"+account+" 推送的消息是:"+msg);
    }

    /**
     *  推送消息至服务端
     */
    public void sendMsgToSvr(){
        System.out.println("开始推送消息到服务端!!!");
        new MessageServer().send(msg,account,this);
    }
//====================================================
/**
 *  消息服务端
 */
public class MessageServer {
    public void send(String msg, String account, MessageClient messageClient) {
        System.out.printf("处理[%s]推送的[%s]\n",account,msg);
        //处理完业务逻辑 echo结果给客户端
        messageClient.onSuccess(msg,account);
    }
}

//=========================================================
/**
 *  测试样例类
 */
public class CallBackTestExample {
    public static void main(String[] args) {
        final String msg = "这是一条测试消息";
        final String account = "lsy_QAQ";
        new MessageClient(msg,account).sendMsgToSvr();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值