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.运行结果

老板叫员工做事:帮老板买球!
老板命令完后,去风流快活了
员工要去执行老板的命令:帮老板买球!
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工在忙自己的事中。。。没空处理老板的命令
员工有空处理老板的命令了:帮老板买球!
员工已经执行完老板的命令,返回结果。
员工执行完命令,返回结果给老板,员工:哥辞职不做了!!

  

posted @ 2015-03-26 11:50  beyondbycyx  阅读(161)  评论(0编辑  收藏  举报