这两个模式实质上很简单,在实际项目中也是非常常用的。但却被有些人说的云里雾里,这里用白话解释一下。

本质上两者都是同一个模式。专业的说法是这样的(觉得绕口的请直接转到白话解释部分,再回头来看下面这几句话就好懂了):

监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以执行监听器要实现的业务功能,也可以回调事件源的方法。

观察者模式:观察者(Observer)相当于事件监听者,被观察者(Observable)相当于事件源和事件,执行逻辑时通知触发observer的通知方法,将要处理的数据做为参数传递给观察者。

用白话解释一下:

1、事件源(被观察者):触发事件的类。在事件源中有一个集合,存放了一系列的监听器(观察者,为了解耦,必须是接口)。

2、监听器(观察者):实现了监听器接口的实现类。要做的事在接口方法中实现。

3、触发(通知):循环调用集合中的接口类的方法。此时会将要处理的数据、包括事件源自身一起封装到Event中,交给接口实现类(即监听器、观察者)进行处理。

举个败家子的例子:败家子(事件源、被观察者)没钱了,对者捧着败家子的一坨人(监听器、观察者)吼道:哥没钱了,拿钱来!!!

于是,爷爷、爸爸、妈妈这些只知道哄着败家子的一坨人(监听器集合)各自调用自己的方法忙开了(有的拿存折,有的卖家产)。

OK,两个模式说完了。

最新文章

  1. php 使用函数中遇到的坑之----strpos
  2. css3中的颜色
  3. thinkphp安装 版本 3.1.3
  4. Unable to establish connection to tokens
  5. 在linux下的firefox中安装flashplayer
  6. apt系统中sources.list文件的解析
  7. 关于类似(i++)+(++i)
  8. python之函数式编程
  9. 深入理解Tornado——一个异步web服务器
  10. YII CDbCriteria总结
  11. C#调用WebService接口实现天气预报在web前端显示
  12. global关键字修改全局变量
  13. VK CUP2017 ROUND 1
  14. InnoDB存储引擎的总览
  15. ASP.NET Core 2.0 : 八.图说管道,唐僧扫塔的故事
  16. DataTable的详细用法
  17. request请求 HTTPBody 格式
  18. 微信小程序/网站 上传图片到腾讯云COS
  19. linux c学习笔记----线程创建与终止
  20. maven学习知识点汇总

热门文章

  1. mysql-计算字段
  2. xml布局内容总结(四)--Android
  3. vim 插件之solarized
  4. html5播放m3u8视频,web端看直播
  5. JavaScript总结(2)
  6. PostgreSQL环境中查看SQL执行计划示例
  7. MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
  8. 洛谷P1006 传纸条 (棋盘dp)
  9. [Recompose] Stream a React Component from an Ajax Request with RxJS
  10. Ext4.0 经常使用代码整理(一)