生活中经常遇到此种情况,当你有事时,拿起手机打给那几个最要好的朋友。朋友在留给你电话的时候总会嘱咐一句有事打电话。本例子正是模仿这个来解释监听器的。
public class 我 {
public static void main(String[] args) {
我的手机 手机 = new 我的手机();
小李 我的朋友小李 = new 小李();
小明 我的朋友小明 = new 小明();
手机.将朋友加入通讯录(我的朋友小李);
手机.将朋友加入通讯录(我的朋友小明);
我有事了(手机);
}
public static void 我有事了(我的手机 挨个打){
挨个打.群打电话();
}
}
这是被监听者,即事件源,手机就是所谓的监听器
public class 我的手机 {
private ArrayList<朋友> 通讯录 = new ArrayList<朋友>();//监听自己的监听器队列
public 我的手机(){}
public void 将朋友加入通讯录(朋友 友人) {
通讯录.add(友人);
}
public void 群打电话() {//通知所有的监听器
for(朋友 友人:通讯录){
友人.call();
}
}
}
手机就是监听器,朋友就是事件对象
public interface 朋友 {
void call();
}
public class 小李 implements 朋友{
@Override
public void call() {
System.out.println("小李手机 :那撒b来电话了");
}
}
public class 小明 implements 朋友{
@Override
public void call() {
System.out.println("小明手机 :您孙子有事找你");
}
}
运行我.class ,我有事了,主动拨打电话,朋友们电话响起,我成功被监听。
小李手机 :那撒b来电话了
小明手机 :您孙子有事找你