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=?");
    }
  • 相关阅读:
    linux系统添加指定uid和gid的用户和组
    sshd服务安装
    psql: could not connect to server: No such file or directory&&PGHOST
    如何使用Python操纵Postgres数据库
    postgresql数据库常用操作命令及SQL语言
    Postgres安装
    Postgres 主从复制搭建步骤
    Centos7上安装docker
    MySQL 基本语法
    Redis-Migrate-Tool 使用详解
  • 原文地址:https://www.cnblogs.com/maofa/p/6407054.html
Copyright © 2011-2022 走看看