Java 接口回调

个人理解:
一个类A中的方法1调用类B中的方法2,类B中的方法2调用类A中的方法3

模拟这样一个场景:
员工A完成星期一到星期五的工作量后,打电话给出差在外的老板,老板进行了工作量的验收,老板觉得合格,就给员工发工资,再发给员工一个通知,通知员工查看银行卡


首先,一个发工资的接口,可以看作是老板给员工发通知的通知器

public interface PayoffListener {
    void checkCard();
}

接着是出差在外的老板

public class Boss {
    public void accept(int i, PayoffListener payoffListener) {
        if(i == 5 && payoffListener != null ){//验收是否完成5天  接口引用不为空 
            System.out.println("老板---->工资已发,注意查收");
            payoffListener.checkCard();//通知员工
        }
    }
}

在公司工作的持有通知器的员工,员工想要得到工资,肯定得持有老板这个对象,否则找谁要工资

public class Employee implements PayoffListener {
    private Boss boss;
    private int num = 0;

    public Employee(Boss boss) {
        this.boss = boss;
    }

    public void work(int i) {
        for (int y = 1; y <= i; y++) {
            num++;
            System.out.println("第" + y + "天工作干完了");
        }
    }

    /**
     * 打电话给老板
     */
    public void callBossForMoney() {
        boss.accept(num, this);
    }

    /**
     * 查看银行卡
     */
    @Override
    public void checkCard() {
            System.out.println("员工---->工资到银行卡了");
    }
}

进行测试:

public class CallbackDemo {
    public static void main(String[] args) {
        Boss boss = new Boss();
        Employee employee = new Employee(boss);
        employee.work(5);

        employee.callBossForMoney();
    }
}

运行结果:

第1天工作干完了
第2天工作干完了
第3天工作干完了
第4天工作干完了
第5天工作干完了
老板---->工资已发,注意查收
员工---->工资到银行卡了

想的这个场景也不晓得恰当不恰当。理解的比较浅显,深入的以后再继续学习

本人很菜,有错误请指出

共勉 : )

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、回调的含义和用途 1. 什么是回调? 一般来说,模块之间都存在一定的调用关系,从调用方式上看,可以分为三类:同...
    Coder_Y阅读 1,778评论 0 5
  • 文章出自http://www.sohu.com/a/125632583_445013二、回调的含义和用途1、什么是...
    安安静静写代码阅读 399评论 0 2
  • 百度百科定义: 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数地址给另一个函数,当这个...
    ElephantChan阅读 777评论 0 0
  • 本人由于实际开发中由于项目原因或者是个人原因很多东西都是处于模棱两棵状态,导致后面后面在实际开发中对很多东西都理解...
    Ray丶Cxy阅读 502评论 2 5
  • 无奈地写了18号,明明刚才还是17号 时间就是这样,蛮不讲理,我们对此却无可奈何。 一天天地时间过去,而我终究回不...
    却篱阅读 185评论 0 0