首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么当一个观察者发出一个值时,不调用所有观察者的on_next函数?

当一个观察者发出一个值时,不调用所有观察者的on_next函数是因为观察者模式中的观察者是独立的个体,它们之间并不直接通信。观察者模式是一种一对多的依赖关系,一个被观察者对象可以有多个观察者对象,当被观察者对象的状态发生变化时,它会通知所有的观察者对象。

在观察者模式中,被观察者对象维护一个观察者列表,当其状态发生变化时,会遍历观察者列表,依次调用每个观察者的相应方法。在RxJava等响应式编程框架中,这个方法通常是onNext()。

然而,并不是所有的观察者都对所有的事件都感兴趣,有些观察者只对特定的事件感兴趣,而对其他事件则不关心。因此,当一个观察者发出一个值时,只有对该事件感兴趣的观察者才会被调用其onNext()方法,其他观察者则会被忽略。

这种设计可以提高系统的灵活性和性能效率。每个观察者只需要关注自己感兴趣的事件,不需要处理其他无关的事件,从而减少了不必要的计算和通信开销。同时,这种设计也符合观察者模式的原则,即观察者对象之间应该是松耦合的,彼此独立。

需要注意的是,具体的实现可能会有所不同,具体的框架或库可能会有自己的规则和机制来处理事件的分发和触发。因此,在具体的开发中,需要根据所使用的框架或库的文档和规范来理解和使用观察者模式。

相关搜索:当第一个观察者完成时,如何调用下一个观察者?当观察值变为nil时,为什么观察者不发出事件?RxJava :当调用包含观察者的函数时,无法在后台线程上调用观察当一个observable发出一个值时,需要执行2个API调用当使用async/await时,当一个调用出错时,如何停止函数的执行?如何调用一个用随机值填充所有表列的函数?当调用一个函数时,为什么我必须重做一个try-except语句呢?当我放入一个值时,为什么不旋转一个对象的角度当我调用我的函数时,为什么我有一个无效的钩子调用?当只有一个选项时,如何调用或执行ajax的change函数当使用"apply“时,我可以只返回一个函数的一个值吗?当我调用一个函数时为什么我的程序停止了?当key是一个变量时,如何遍历字典中的所有值?当函数的参数是一个对象时,为什么不能使用Typescript推断方法调用呢?如何从不同的函数发出值,但将所有值收集在一个地方?流水线当单击一个组件中的按钮时,如何调用另一个组件中的函数为什么当其中一个块变大时,我的所有块都会增加?当函数传递给另一个函数时,如何承诺/等待要调用的回调函数当一个元素不再有一个特定的类(没有jquery)时,我想调用一个函数当抛出前一个异常时,(创建/复制/移动)构造函数抛出异常时,为什么不调用std::terminate()?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券