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


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

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

    //设计一个事件源,被监听器监听  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;

           }

          

    }

  • 相关阅读:
    A. SwapSort
    D. A Shade of Moonlight
    利用DataSet更改数据,将更改保存到数据库中
    接口设计与数据同步解决方案小结
    SQL 判断 ‘表,存储过程,函数 ...’ 已是否存在
    SQL Server系统表sysobjects介绍与使用
    【转】SQL Server 2008 事件探查器(SQL SERVER Profiler)
    SQL 常用语句
    网页开发 组件
    中文版的jqGrid实例大全
  • 原文地址:https://www.cnblogs.com/flying607/p/3469133.html
Copyright © 2020-2023  润新知