用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;
?}
}
运行效果为:

如此便实现了观察者模式。