监听器的原理是观察者模式。就像明星(事件源)聚拢了一群粉丝(观察者)。当明星有啥举动的时候会通过粉丝们报道出去。订阅信息、计算器按钮都是该原理的应用。
下面写了一个监听器的小例子:
package listener;
import java.util.EventObject;
/**
* 定义事件对象,用于标记当前进行的动作。必须继承EventObject。
* @auth...
分类:
编程语言 时间:
2015-07-01 18:18:41
阅读次数:
156
意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用性:当一个抽象模型有两个方面,其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改...
分类:
其他好文 时间:
2015-06-30 12:45:14
阅读次数:
109
观察者模式(发布-订阅模式):
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
观察者模式特点
使用场合:当一个对象的改变需要同时改变其他对象的时候。而且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式。
...
分类:
其他好文 时间:
2015-06-29 10:17:40
阅读次数:
76
软件需要设计,那么如何设计,设计的灵感源于实践,前人的设计经验被总结为设计模式,所以学习设计模式或许可以更快的get到设计这个技能。虽说设计模式不是银弹,但笔者相信一定是一颗具有杀伤力的子弹。...
分类:
其他好文 时间:
2015-06-28 17:06:54
阅读次数:
106
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2015-06-28 14:06:58
阅读次数:
140
观察者模式是一种类似于消息分发的模式,用于一个任务需要被多个对象监听的场景,或者成员对象需要反向通知类对象的情况,是一种很有用的设计模式。
这里以大话设计模式中的例子为例,办公室员工A、B、C在看股票看电影,这时老板回来了,被A、B、C重金贿赂后的前台MM发出通知给A、B、C,A、B、C收到通知后赶紧关电脑,关股票窗口,装作在干活。...
分类:
编程语言 时间:
2015-06-28 12:50:27
阅读次数:
114
设计模式-观察者模式定义观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或 从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各 观察者所...
分类:
其他好文 时间:
2015-06-27 01:13:47
阅读次数:
174
监听器在java中十分重要,在android开发中,每个组件都有各种各样的listener,像常见的onClickListener
结合看了几篇文章,自己试着写了一个listener的小测试
测试模拟有一个一对多的打电话对象,当对象打电话,对他监听的人都能收到他打电话的信息
首先是打电话和监听类的接口
interface iCall{
void cal...
分类:
编程语言 时间:
2015-06-26 09:20:27
阅读次数:
107
ReactiveX是利用可观察数据流实现异步编程的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。
RxJava是Reactive Extensions的Java VM实现,它是一个使用可观察序列编写异步和事件驱动程序的库。它扩展了观察者模式以支持数据和事件序列,并且加入操作符Operator。它将你的注意从低级别线程,线程同步,线程安全和并发数据对象这些复杂问题中转移。...
分类:
编程语言 时间:
2015-06-26 09:18:38
阅读次数:
196
定义观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模...
分类:
其他好文 时间:
2015-06-25 17:16:16
阅读次数:
196