Dev-No.03 Java中回调函数的实现
?
public interface Event {public String happenedEvent();} public class EventA implement Event {public String happenedEvent() {System.out.println(“发生了事件A”);}}public class EventB implements Event {public String happenedEvent() {System.out.println(“发生了事件B”);}}public class Worker {private String name;private Boss boss;private Event event;public Worker(String name, Event event) {this.name = name;this.event = event;public void setName(String name) {this.name = name;}public String getName() {return name;}public void setBoss(Boss boss) {this.boss = boss;}public Boss getBoss() {return boss;}public void setEvent(Event event) {this.event = event;}public Event getEvent() {return event;}public void doWork() {System.out.println(name + “ is doing the work!”);for(int i=0; i<10000; ++i) {int x = i;}System.out.println(name + “ finished the work, please send the message to his boss”);boss.getWorkEvent(this, event);}}public class Boss {private String name;public Boss(String name) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public void getHappenedEvent(Worker worker, Event event) {System.out.println(“老板接收到的信息:” + worker.getName() + “ :” + event.happenedEvent());}public class TestCallBack {public static void main(String args[]) {Boss boss = new Boss(“老板”);Worker w1 = new Worker(“张三”);Worker w2 = new Worker(“李四”);Event e1 = new EventA();Event e2 = new EventB();w1.setEvent(e1);w2.setEvent(e2);w1.doWork();w2.doWork();}}?
?