观察者模式的角色为观察者(observer)和主题(subject)对象,observer需要观察subject时,需先到subject里面进行注册(subject对象持有observer对象的集合句柄),然后,当subject对象的内部状态发生变化时,把这个变化通知所有的观察者。
发布、订阅模式的角色为发布者(publisher)和订阅者(subscriber),pub和sub之间没有直接的耦合关系,pub发布一个消息事件(event),sub订阅感兴趣的消息事件,sub也可以取消订阅。
可初步得出结论:
观察者模式中的观察者是和主题对象紧耦合的。
发布\订阅模式中的发布者和订阅者是松耦合的,发布者和订阅者是通过事件发生联系的。