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

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

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

}

}

转载于:https://www.cnblogs.com/flying607/p/3469133.html

简单的对象监听器 观察者设计模式相关推荐

  1. javaEE之--------统计站点在线人数,安全登录等(观察者设计模式)

    整体介绍下:  监听器:监听器-就是一个实现待定接口的普通Java程序,此程序专门用于监听别一个类的方法调用.都是使用观察者设计模式. 小弟刚接触这个,做了些简单的介绍.大神请绕道,技术仅仅是一点点, ...

  2. Android开源—RXJava观察者设计模式

    简介 RxJava 是一个响应式编程框架,采用观察者设计模式.所以自然少不了 Observable 和 Subscriber 这两个东东了. RxJava最核心的两个东西是Observables(被观 ...

  3. 探究netty的观察者设计模式

    javadoc笔记点 观察者的核心思想就是,在适当的时机回调观察者的指定动作函数 我们知道,在使用netty创建channel时,一般都是把这个channel设置成非阻塞的模式,这意味着什么呢? 意味 ...

  4. js observer 添加_简单了解4种JS设计模式

    阅读本文约需要5分钟 大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈).上次老师跟大家分享了15款有用前端开发的ST插件的知识,今天跟大家分享下4种 ...

  5. Unity 3D观察者设计模式-C#委托和事件的运用

    C#观察者设计模式 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新 ...

  6. 《Head First设计模式》批注系列(一)——观察者设计模式

    最近在读<Head First设计模式>一书,此系列会引用源书内容,但文章内容会更加直接,以及加入一些自己的理解. 观察者模式(有时又被称为模型-视图(View)模式.源-收听者(List ...

  7. java 观察者模式示例_观察者设计模式示例

    java 观察者模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如 ...

  8. java 观察者模式示例_Java中的观察者设计模式-示例教程

    java 观察者模式示例 观察者模式是行为设计模式之一 . 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时,观察者设计模式很有用. 在观察者模式中,监视另一个对象状态的对象称为Observer ...

  9. Java中的观察者设计模式-示例教程

    观察者模式是行为设计模式之一 . 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时,观察者设计模式很有用. 在观察者模式中,监视另一个对象状态的对象称为Observer ,而正在监视的对象称为S ...

最新文章

  1. centos7grub配置文件及排错
  2. PyTorch tensorboard报错:TensorBoard logging requires TensorBoard version 1.15 or above
  3. mailing list的原理
  4. 审批流_怎样让审批工作流和应用数据分离?
  5. 【渝粤教育】21秋期末考试建筑力学与结构10126k2111
  6. 25个CSS3 渐变和动画效果教程
  7. c语言与64位windows不兼容_微软发布可模拟 64 位 x86 程序的 ARM 版 Windows 10
  8. 无心剑《译海泛轻舟》
  9. Java环境安装手册
  10. linux学习笔记:处理linux目录的常用命令
  11. mysql里cis_CIS MySQL存储库表修复过程
  12. hackthebox - frolic (考点: 信息搜集 ook解密 base解密 zip 解密 xxd解密 brainfuck解密 playsms安全)
  13. JAVA-三种注释方式
  14. web高级前端面试实战总结
  15. rfc3550-rtp:一种实时应用的传输协议
  16. Echarts 开源,免费商用图表控件使用整理
  17. 专访凌云光技术3D视觉业务部经理李淼:做好技术和产品,为VR行业服务
  18. UART的break信号
  19. JS入门到入土之数字运算符扩展
  20. 聊聊LM2596SDC-DC降压模块的使用

热门文章

  1. Python类简明教程
  2. java 深克隆(深拷贝)与浅克隆(拷贝)详解
  3. python csv 模块的使用
  4. 修改Tomcat可支持get传参方式的url长度,get形式
  5. ajax跨域请求问题总结
  6. 测试分析设计工程方法
  7. dynamic_caast操作符
  8. 前端性能优化之DOM(三)
  9. OpenSearchServer 1.4 RC4 发布
  10. 如何将mysql5的sql文件导入到mysql4?