zoukankan      html  css  js  c++  java
  • 设计模式

    回调模式
    异步回调
    简单介绍:
    回调参数的接口类似于get和set方法,当通知方提出问题时,设置方回答答案,然后回调给通知方设置方给出的答案。
    注意点:
    1.通知类必须实现回调接口,等待从回调接口接收参数。
    2.设置方必须在方法中,引入回调接口参数,通过调用回调接口设置答案。
    3.异步的回调就是在通知方中新开一个线程来调用设置方。
    案例
    1:注册一个回调参数的接口
    public interface CallBack {
       void solve(String result);
    }
    2:参数的设置方
    public class Li {
       public void executeMessage(CallBack callBack,String question){
          System.out.println("服务端:服务端接收到客户端发送的消息为:" + question);
          // 模拟服务端需要对数据处理
            try {
                Thread.sleep(5 * 1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            /**
             * 小李办完自己的事情之后想到了答案是2
             */
            String result = "答案是2";
     
            /**
             * 于是就打电话告诉小王,调用小王中的方法
             * 这就相当于B类反过来调用A的方法D
             */
            callBack.solve(result);
       }
    }
    3:设置通知类
    public class Wang implements CallBack{
       private Li li;
     
       public Wang(Li li) {
          this.li = li;
       }
      
       public void askQuestion(String question){
           System.out.println("客户端:发送的消息为:" + question);
               new Thread(new Runnable() {
                   @Override
                   public void run() {
                       li.executeMessage(Wang.this,question);
                   }
               }).start();
           System.out.println("客户端:异步发送成功");
       }
     
       @Override
       public void solve(String result) {
          System.out.println("小李告诉小王的答案是--->"+result);
       }
      
    }
    4:main方法引用
    public static void main(String[] args) {
          Li li=new Li();
          Wang wang = new Wang(li);
            wang.askQuestion("1+1=?");
    }
  • 相关阅读:
    宋体freetype16和12号字无法正常显示
    Visual Studio 2015 自动生成 的大文件xxx.vc.db的删除问题
    PP助手上传失效
    freetype教程网址
    编译器发展
    静态与动态库文件
    makefile文件操作大全
    Unicode编码字符范围和具体文字
    Oracle用户被锁定解决方法
    oracle中rownum和row_number()
  • 原文地址:https://www.cnblogs.com/maofa/p/6407054.html
Copyright © 2011-2022 走看看