简单的对象监听器 观察者设计模式

该代码实现了一个可以注册监听类的类,如果注册了监听类,那么在类的一个方法执行前会执行监听类的方法。并且该监听类方法的参数就是被监听对象。

监听类就是事件监听器,被监听对象就是事件源,事件监听器的参数就是事件对象。

//设计一个事件源,被监听器监听  Observer(观察者设计模式)

public class Demo2 {

 

       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;

       }

      

}

posted @ 2013-12-11 12:53  剑握在手  阅读(356)  评论(0编辑  收藏  举报
返回顶部↑