zoukankan      html  css  js  c++  java
  • java回调机制(同步回调)

    场景:父亲问姐姐:弟弟的作业写好了吗?

       姐姐就去问弟弟:弟弟,你作业写好了吗?

       弟弟写完作业后,告诉姐姐:姐姐,我作业写完了!

       姐姐知道后,就告诉父亲:父亲,弟弟作业写完了!

    代码:

    CallBack.java传递消息的接口:

    package myInterfaceCallback;

    public interface CallBack {

    public void tell(String result);
    }

    Brother.java弟弟类:

    package myInterfaceCallback;

    import myInterfaceCallback.CallBack;

    public class Brother {

    public void doHomework(CallBack tellSister, String question) {
    System.out.println(question);
    tellSister.tell("弟弟:姐姐,我已经写完了!");
    }
    }

    Sister.java姐姐类:

    package myInterfaceCallback;

    public class Sister implements CallBack{

    public Brother brother;

    public Sister(Brother brother) {
    super();
    this.brother = brother;
    }

    @Override
    public void tell(String result) {
    // TODO Auto-generated method stub
    System.out.println(result);

    }

    public void toAskBrother(CallBack tellParent, String question) {
    // TODO Auto-generated method stub
    brother.doHomework(Sister.this, question);
    tellParent.tell("姐姐:父亲,弟弟作业写完了!");
    }
    }

    Parent.java父亲类:

    package myInterfaceCallback;

    public class Parent implements CallBack{

    public Sister sister;

    public Parent(Sister sister) {
    super();
    this.sister = sister;
    }

    @Override
    public void tell(String result) {
    // TODO Auto-generated method stub
    System.out.println(result);
    }

    public void askToSister(String question) {
    // TODO Auto-generated method stub
    System.out.println(question);
    sister.toAskBrother(Parent.this, "姐姐:弟弟,你作业做好了吗?");
    }

    }

    Test.java测试运行类:

    package myInterfaceCallback;

    public class Test {

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Parent parent = new Parent(new Sister(new Brother()));

    parent.askToSister("父亲:弟弟作业做好了吗?");
    }

    }

     运行结果:

    父亲:弟弟作业做好了吗?
    姐姐:弟弟,你作业做好了吗?
    弟弟:姐姐,我已经写完了!
    姐姐:父亲,弟弟作业写完了!

  • 相关阅读:
    调试脚本的技巧与实际应用
    mysqlconnector将EXCEL表数据导入数据库
    第四十三节,文件、文件夹、压缩包、处理模块shutil
    第四十二节,configparser特定格式的ini配置文件模块
    第四十一节,xml处理模块
    第四十节,requests模拟浏览器请求模块初识
    第三十九节,python内置全局变量
    第三十八节,字符串格式化
    第三十七节,hashlib加密模块
    第三十六节,os系统级别操作模块
  • 原文地址:https://www.cnblogs.com/zhengbiyu/p/9302577.html
Copyright © 2011-2022 走看看