观察者模式和发布订阅模式的区别

发布时间 2023-12-21 11:56:39作者: Silentdoer

观察者模式只有两个对象,一个是观察者(Listener)和被观察者;

观察者通过实现被被观察者提供的接口,add到被观察者的Listener列表里;

当被观察者内部产生相关事件时,通过其Listener列表来通知观察者;

 

而发布定义模式则多了一个中介(比如Kafka),即分为了生产者、中介、消费者三个角色了;

生产者产生事件后,将事件类型和事件内容发布到中介上;而消费者通过定义相关的事件类型来接收相关的事件通知;

这个接收可以是应用主动poll(pull)和push(中介来push,或者client库通过长连接轮休模拟服务端push到应用代码里)的;