美文网首页
Java 接口回调

Java 接口回调

作者: 英勇青铜5 | 来源:发表于2016-09-11 10:51 被阅读207次

    个人理解:
    一个类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天工作干完了
    老板---->工资已发,注意查收
    员工---->工资到银行卡了
    

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

    本人很菜,有错误请指出

    共勉 : )

    相关文章

      网友评论

          本文标题:Java 接口回调

          本文链接:https://www.haomeiwen.com/subject/gujuettx.html