Java的回调函数和观察者模式的区别
2014-04-14 16:27
127 查看
前一段时间研究了一下设计模式,突然想到观察者模式和回调函数之间的联系,网上也没有什么人说清楚,便自己又仔细想了想,便有了如下观点,欢迎各位大神前来拍砖!
首先,先阐述一下网上说的,网上先说这是完全不同的两种东西,接口回调是观察者模式的实现,后者是一种设计模式。
然而,我更关注的是两者之间的联系,我便总结了一下网上前辈的观点。
我的观点是回调函数应该属于观察者模式的一种,目的是为了替代轮循机制,将组件之间的耦合性降低,而真正的底层实现依旧使用的是轮询机制。
就像Mina2中的handler,每当收到消息便调用messageReceived方法,又或者类似安卓中的Handler,安卓中是一旦调用handler.sendMessage(msg)方法后,自动执行public void handleMessage(Message msg),我们需要重写此方法来处理业务逻辑,这些都可以认定为利用了回调函数来实现的观察者模式。
观察者模式还有一种实现方式是发布/订阅,这一点又有点类似中介者模式。
这两者的区别我引用下面一段话吧:
在Obsever模式中, 不存在封装约束的单一对象。Observer 和 Subject 必须合作才能维持约束。
Communication(通讯)模式由观察者和目标互联的方式决定:单一目标通常有很多观察者,有时一个目标的观察者是另一个观察者的目标
Mediator 和 Observer 都能促进松耦合,然后Mediator 模式通过限制对象严格通过Mediator 进行通信来实现这个个目的
Observer 模式创建观察者对喜爱那个,观察者对象向订阅它们的对喜爱那个发布其感兴趣的事件。
其实对于中介者模式,大家可以想想MVC,无论是Spring3MVC还是Structs MVC,其中的controller都运用到了中介者模式,其中的奥妙还是需要自己去领悟。
分享学习心得,欢迎来搞,哦不对,是来稿~
首先,先阐述一下网上说的,网上先说这是完全不同的两种东西,接口回调是观察者模式的实现,后者是一种设计模式。
然而,我更关注的是两者之间的联系,我便总结了一下网上前辈的观点。
我的观点是回调函数应该属于观察者模式的一种,目的是为了替代轮循机制,将组件之间的耦合性降低,而真正的底层实现依旧使用的是轮询机制。
就像Mina2中的handler,每当收到消息便调用messageReceived方法,又或者类似安卓中的Handler,安卓中是一旦调用handler.sendMessage(msg)方法后,自动执行public void handleMessage(Message msg),我们需要重写此方法来处理业务逻辑,这些都可以认定为利用了回调函数来实现的观察者模式。
观察者模式还有一种实现方式是发布/订阅,这一点又有点类似中介者模式。
这两者的区别我引用下面一段话吧:
在Obsever模式中, 不存在封装约束的单一对象。Observer 和 Subject 必须合作才能维持约束。
Communication(通讯)模式由观察者和目标互联的方式决定:单一目标通常有很多观察者,有时一个目标的观察者是另一个观察者的目标
Mediator 和 Observer 都能促进松耦合,然后Mediator 模式通过限制对象严格通过Mediator 进行通信来实现这个个目的
Observer 模式创建观察者对喜爱那个,观察者对象向订阅它们的对喜爱那个发布其感兴趣的事件。
其实对于中介者模式,大家可以想想MVC,无论是Spring3MVC还是Structs MVC,其中的controller都运用到了中介者模式,其中的奥妙还是需要自己去领悟。
分享学习心得,欢迎来搞,哦不对,是来稿~
相关文章推荐
- Java的回调函数和观察者模式的区别
- Java回调函数与观察者模式实例代码
- Java观察者模式以及与订阅发布者模式区别
- Java设计模式-回调函数和观察者模式
- Java设计模式-回调函数和观察者模式
- Java 回调函数 与 观察者模式
- java的观察者模式(有点监听器的感觉),Thread和Runnable的区别
- Java设计模式-回调函数和观察者模式
- java设计模式15——观察者模式(Observer)
- JAVA设计模式之观察者模式
- Java设计模式—观察者模式
- java 观察者模式
- java设计模式之观察者模式Observer
- Java 设计模式(一)观察者模式
- java设计模式_观察者Observer(一)
- (java)从零开始之--观察者设计模式Observer
- java观察者模式
- java观察者模式 学习笔记
- Java设计模式百例 - 观察者模式
- Java设计模式(三)——观察者模式和监听器