java设计模式--事件监听器模式(观察者模式)

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

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

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

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

用白话解释一下:

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

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

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

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

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

OK,两个模式说完了。

上一篇:freeCodeCamp:GO BYBY GO!


下一篇:ZOJ2588 Burning Bridges(割边模板)