观察者模式与反应者模式的区别

一直对这两个设计模式有点混淆,两者搞一起就晕菜了。今天梳理一下:

1、观察者模式,是observer pattern。它主要用于一个主体的某个属性变了,然后通知多个观察者。

属于一个事件源,多个观察者。通常有如下的伪代码:

subject.add(observer);          //添加观察者

subject.remove(observer);   //移除观察者

subject.notify(observer);       //通知观察者

2、反应者模式,即reactor pattern。它主要用于一个主体感兴趣的多个事件中的一个或者多个发生了,那么就将这件事主动告诉主体。

通常有如下的伪代码:

subject.add_event(event);                                      //添加事件(感兴趣的)

subject.remove_event(event);                               //移除事件

subject.set_event_call_back(event,func);          //设置事件回调函数

subject.event_call_back(event,arg);                   //事件发生的时候的回调函数

3、通过上述分析,就不会乱了。当你想要一个类的变动,而通知其它很多不同类的时候,可以使用observer,当你想基于性能要做一些异步处理的时候,那么就使用

reactor.

4、That's All.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值