观察者模式又叫做发布-订阅模式,其实本人是更加喜欢发布-订阅模式的,因为观察者模式听起来实在是让人无法理解。接下来,我们还是说发布-订阅模式吧,为什么这么说呢,因为这里存在两种对象发布者和订阅者,这种模式的特点是,发布者是一对多的,而订阅者和发布者之间是一对一的(一个用户只能订阅一次电台,不能重复订阅)。接下来我准备用一个收听电台的形式来讲这种设计模式,因为最近我也有听电台,而且准备投简历到一个做电台的公司。加油!
假设我们有很多的用户,这些用户就是我们的Observer了
定义发布者,发布者需要和订阅者进行关联,当有信息需要发布的时候,遍历订阅者名单,然后调用每个订阅者的回调方法。
我们可以直接在电台添加我们的听众,但是很明显这样不符合我们的正常逻辑,应该由我们的听众主动订阅电台,一个用户可以订阅多个电台
很显然,每次我们的电台发送信息,我们就听众都会收到信息,并且做出相应处理。