Java-回调机制
1.老板类
1 //老板类 2 public class Boss implements CallBack { 3 4 public static void main(String[] args) { 5 // 演示老板叫员工做某件事,当员工做完某件事后将结果告诉老板。 6 new Boss().orderSomething(new Employee (), "帮老板买球!"); 7 } 8 //命令员工做某件事 9 public void orderSomething(final Employee emp,final String thing) 10 { 11 System.out.println("老板叫员工做事:"+thing); 12 //员工是一个线程类,他有自己的做事流程 13 new Thread(){ 14 public void run() { 15 emp.doSomething(Boss.this, thing); 16 }; 17 18 }.start(); 19 //员工启动做事后,老板干自己的事去了 20 System.out.println("老板命令完后,去风流快活了"); 21 22 } 23 @Override 24 public void callMeWithResult(String result) { 25 System.out.println("员工执行完命令,返回结果给老板,员工:"+result); 26 } 27 }
2.回调接口
1 //回调接口,员工返回老板结果。 2 interface CallBack{ 3 void callMeWithResult(String result); 4 5 }
3.员工类
1 //员工类 2 class Employee 3 { 4 //接收老板的命令,并执行该命令 5 public void doSomething(Boss who,String thing) 6 { 7 System.out.println("员工要去执行老板的命令:"+thing); 8 for(int i=0;i<10;i++) 9 { 10 System.out.println("员工在忙自己的事中。。。没空处理老板的命令"); 11 } 12 System.out.println("员工有空处理老板的命令了:"+thing+"\n员工已经执行完老板的命令,返回结果。"); 13 who.callMeWithResult("哥辞职不做了!!"); 14 } 15 }
4.运行结果
老板叫员工做事:帮老板买球! 老板命令完后,去风流快活了 员工要去执行老板的命令:帮老板买球! 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工在忙自己的事中。。。没空处理老板的命令 员工有空处理老板的命令了:帮老板买球! 员工已经执行完老板的命令,返回结果。 员工执行完命令,返回结果给老板,员工:哥辞职不做了!!