Java源码实现观察者模式实例
用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;
}
}
运行效果为:
如此便实现了观察者模式。