博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
观察者模式
阅读量:7056 次
发布时间:2019-06-28

本文共 1011 字,大约阅读时间需要 3 分钟。

hot3.png

/**
 * 观察者
 * 里面有一个方法,用来监视Person的run方法
 */
public interface PersonListener {
   public void running(PersonEvent e);
/*
 * 观察者方法的参数,可以获得被观察者对象
 */
public class PersonEvent{
   private Object src;
   public PersonEvent(Object o){
  this.src=o;
   }
   public Object getSource(){
  return src;
   }
}
/**
 * 这是一个观察者模式的示例,Person是被观察者,持有一个观察者对象
 * 在调用监听方法addPersonListener时,把观察者传入
 */
public class Person {
    private PersonListener pl;
    public void addPersonListener(PersonListener pl){
    this.pl=pl;
    };
    /**
     * 在run()中回调PersonListener的running方法
     */
    public void run(){
    if(pl!=null){
    pl.running(new PersonEvent(this));
    }
    System.out.println("I'm running now");
    }
}
/**
 * 这是一个测试类
 *
 */
public class ObserveDemo {
public static void main(String[] args) {
         Person p=new Person();
         System.out.println(p.hashCode());
        
         p.addPersonListener(new PersonListener(){
public void running(PersonEvent e) {
System.out.println("Are you really runing now ,OMG!");
System.out.println(e.getSource().hashCode());
}
         
         });
         p.run();
}
}

转载于:https://my.oschina.net/u/554240/blog/74658

你可能感兴趣的文章
码客Online:HTC Zoe是什么功能?
查看>>
windows server 2012 r2 搭建企业文件共享存储
查看>>
从零学习游戏服务器开发(三) CSBattleMgr服务源码研究
查看>>
我的友情链接
查看>>
jQuery ajax - serialize() 方法
查看>>
Linux中设置服务自启动的三种方式(转)
查看>>
将Shapefile(SHP)转换为Surfer中的网格(GRD)的方法-适用Surfe14以上版本
查看>>
Linux下实现Apache站点安全
查看>>
el表达式
查看>>
看看JDK 8能给开发者们带来什么
查看>>
严重: IOException while loading persisted sessions: java.io.EOFException
查看>>
win8升级经验谈
查看>>
搜索文件命令
查看>>
postfix+dovecot配置多域名邮件服务器
查看>>
不同型号 交换机批量备份脚本 expect
查看>>
SCCM 软件更新提示自动部署规则到达最大更新数
查看>>
部署docker-registry私有仓库
查看>>
测试学习计划(一)
查看>>
使用cronolog切割tomcat日志
查看>>
我的友情链接
查看>>