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;
 }
}

运行效果为:

Java源码实现观察者模式实例

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

相关推荐