思考了一下java中的监听事件实现方案,没有去看源码,不知道以下实现是否可以:
监听器类:
package listener;/** 
 * 功能描述
 * 
 * @author 
 * 
*/
public interface LoveListener {
/**
 * 
 * description: 监听爱上别人事件
 */
public void loves(LoveEvent e); /**
 * 
 * description:  监听被爱事件
 */
public void beLove(LoveEvent e);
}事件源类,类似于jdk里的JButton等类:
package listener;//
public class Person {
private LoveListener loveListener;
private LoveEvent loveEvent = new LoveEvent(); public void addLoveListener(LoveListener loveListener) {
this.loveListener = loveListener;
//设置事件源
loveEvent.setObj(this);
} public void love() {
if (null != loveListener) {
loveListener.loves(loveEvent);
} }
}
...Event类(类似于jdk的ActionEvent):
package listener;public class LoveEvent {
private Object obj = null; public Object getSource() {
return obj.toString();
} public Object getObj() {
return obj;
} public void setObj(Object obj) {
this.obj = obj;
}
}
继承事件源的类(类似于....extends JButton):
package listener;public class Boy extends Person implements LoveListener {
public Boy() {
this.addLoveListener(this);
//触发事件
this.love();
} @Override
public void beLove(LoveEvent e) {
System.out.println("");
} /**
 * 监听函数
 */
@Override
public void loves(LoveEvent e) {
System.out.println("你爱上了某人");
System.out.println("你爱上的人是:" + e.getSource()); } public static void main(String[] args0) {
Boy boy = new Boy();
boy = new Boy();
}
}每new 个Boy对像都会触发love事件
比较简单不作多解释,谢谢批评&拍砖