java设计模式--事件监听器模式(观察者模式)
2024-08-27 22:24:35
这两个模式实质上很简单,在实际项目中也是非常常用的。但却被有些人说的云里雾里,这里用白话解释一下。
本质上两者都是同一个模式。专业的说法是这样的(觉得绕口的请直接转到白话解释部分,再回头来看下面这几句话就好懂了):
监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以执行监听器要实现的业务功能,也可以回调事件源的方法。
观察者模式:观察者(Observer)相当于事件监听者,被观察者(Observable)相当于事件源和事件,执行逻辑时通知触发observer的通知方法,将要处理的数据做为参数传递给观察者。
用白话解释一下:
1、事件源(被观察者):触发事件的类。在事件源中有一个集合,存放了一系列的监听器(观察者,为了解耦,必须是接口)。
2、监听器(观察者):实现了监听器接口的实现类。要做的事在接口方法中实现。
3、触发(通知):循环调用集合中的接口类的方法。此时会将要处理的数据、包括事件源自身一起封装到Event中,交给接口实现类(即监听器、观察者)进行处理。
举个败家子的例子:败家子(事件源、被观察者)没钱了,对者捧着败家子的一坨人(监听器、观察者)吼道:哥没钱了,拿钱来!!!
于是,爷爷、爸爸、妈妈这些只知道哄着败家子的一坨人(监听器集合)各自调用自己的方法忙开了(有的拿存折,有的卖家产)。
OK,两个模式说完了。
最新文章
- php 使用函数中遇到的坑之----strpos
- css3中的颜色
- thinkphp安装 版本 3.1.3
- Unable to establish connection to tokens
- 在linux下的firefox中安装flashplayer
- apt系统中sources.list文件的解析
- 关于类似(i++)+(++i)
- python之函数式编程
- 深入理解Tornado——一个异步web服务器
- YII CDbCriteria总结
- C#调用WebService接口实现天气预报在web前端显示
- global关键字修改全局变量
- VK CUP2017 ROUND 1
- InnoDB存储引擎的总览
- ASP.NET Core 2.0 : 八.图说管道,唐僧扫塔的故事
- DataTable的详细用法
- request请求 HTTPBody 格式
- 微信小程序/网站 上传图片到腾讯云COS
- linux c学习笔记----线程创建与终止
- maven学习知识点汇总