设计一个事件源,被监听器监听 Observer(观察者设计模式)
//设计一个事件源,被监听器监听 Observer(观察者设计模式)
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
Person p = new Person();
p.registerListener(new PersonListener(){
public void doeat(Event e) {
Person p = e.getSource();
System.out.println(p + "吃个死");
}
public void dorun(Event e) {
// TODO Auto-generated method stub
}
});
p.eat();
}
}
class Person{
private PersonListener listener;
public void eat(){
if(listener!=null){
listener.doeat(new Event(this));
}
}
public void run(){
if(listener!=null){
listener.dorun(new Event(this));
}
}
public void registerListener(PersonListener listener){
this.listener = listener;
}
}
interface PersonListener{
public void doeat(Event e);
public void dorun(Event e);
}
class Event{
private Person source;
public Event() {
super();
// TODO Auto-generated constructor stub
}
public Event(Person source) {
super();
this.source = source;
}
public Person getSource() {
return source;
}
public void setSource(Person source) {
this.source = source;
}
}