用Java簡單的實現了一下設計模式中的觀察者模式實例,源碼如下:
package cn.demo;
public class TestObersver {
public static void main(String[] args) {
Person person=new Person(); //聲明被觀察者
System.err.println("person:"+person);
person.addPersonListener(new PersonListener(){
public void running(PersonEvent pe) {
System.err.println("正在觀察的人:"+pe.getSource());
System.err.println("他正在跑步");
}
});
person.run();
}
}
class Person{
private PersonListener pl;
public void addPersonListener(PersonListener pl){
this.pl=pl;
}
public void run(){
if(pl!=null){
pl.running(new PersonEvent(this));
}
System.err.println("正在跑步....");
}
}
interface PersonListener{
void running(PersonEvent pe);
}
class PersonEvent{
private Object obj;
public PersonEvent(Object obj){
this.obj=obj;
}
public Object getSource(){
return obj;
}
}
運行效果為:
如此便實現了觀察者模式。