Java利用接口实现回调
作者:网络转载 发布时间:[ 2013/6/8 10:05:21 ] 推荐标签:
下面给出上述例子的完整实现:
/*
* 考虑这样一个应用:希望在某个事件发生时得到通知
*/
interface InterestingEvent {
public void interestingEvent();
}
class EventNotifier {
private InterestingEvent ie; //写成private List<InterestingEvent> eventList可以监听多个事件
private boolean somethingHappened;
public EventNotifier(InterestingEvent ie) {
this.ie = ie;
this.somethingHappened = false;
}
public void setHappened() {
this.somethingHappened = true;
}
public void doWork() {
if (somethingHappened) {
ie.interestingEvent();
}
}
}
class ButtonPressedEvent implements InterestingEvent {
@SuppressWarnings("unused")
private EventNotifier en;
public ButtonPressedEvent() {
en = new EventNotifier(this);
}
public void interestingEvent() {
System.out.println("button pressed ");
}
}
class EventNotifierTest {
public static void test() {
//这里有两种调用方法。其中第二种采用匿名内部类,其原理跟上面“改变Client名字”是一样的
EventNotifier en = new EventNotifier(new ButtonPressedEvent());
en.setHappened();
en.doWork();
EventNotifier en2 = new EventNotifier(new InterestingEvent(){
public void interestingEvent() {
System.out.println("inputtext change ");
}
});
en2.setHappened();
en2.doWork();
}
}
//这个类是用来测试的
public class JavaInterfaceCallBack {
public static void main(String[] args) {
ChangeNameTest.test();
EventNotifierTest.test();
}
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11