浏览 3046 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-12-23
准确的将事件或消息发送给观察者,避免迭代带来的性能开销。
1)OringinalObservable 事件源 2)AccurateDispatcher 该类能够将事件或消息准确的发送到关心者。通过Hash 或其它方式寻找关心者,而不是通过迭工的 方式查找。 3)ConcreteObserver 事件或消息的关心者。 java 代码
模式应用<o:p></o:p> <o:p> </o:p> 在EMS/OMC中都会有告警(它是网管系统中的概念),在前端(在C/S构架中的客户端)告警的观察者会很多,少则几千,多则几万都有可能,所以如果当一条告警产生时,并且该告警只有一个或几个观察者(多个观察者可以使用Observer Composite模式),如果通过迭代的方式进行传播,性能会很差,如果使用Accurate event dispatcher 则可以大大的减少性能开销。 当然,使用该模式的前提是:1)消息的观察者可以通过消息中的属性能够定位;2)消息的观察者不是所有已经注册的观察者。 <o:p> </o:p> 模式的延伸<o:p></o:p> 1) The second event dispatcher 在JMS 应用开发时,如果注册太多JMS的Listener 可能会使用一条消息,这样我们可以通过二级事件派发者,进行再次转发。二级事件派发者,可以按照事件的业务类型进行分类,这样可以在二级事件派发者对事件派发的性能进行优化或者容错处理。也可以提高JMS事件的派发性能。2) The observer composite 该模式Second Event Dispatcher的一种特殊应用。 参考<o:p></o:p> 1) Event Aggregator (http://martinfowler.com/eaaDev/EventAggregator.html)声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-12-25
lz你说的就是观察者模式阿。
|
|
返回顶楼 | |
发表时间:2007-12-26
是对观察者模式的一种补充,
|
|
返回顶楼 | |