Java 为什么Android事件回调是基于单播的?
在Java空间中,事件处理通常通过实现多播观察者模式的接口分派来完成。然而,在安卓系统上,许多界面的定义就像只有一个订阅者一样。例如,定义SetOnSeekbarchaneListener(..)而不是AddOnSeekbarchaneListener(..) 出于各种原因,如果组合的不同部分调用setOnSeekBarChangeListener(..),其中后一个调用会删除前一个订阅者,那么这可能是非常有限的,并且还会引入错误。。。安静地Java 为什么Android事件回调是基于单播的?,java,android,events,event-handling,observer-pattern,Java,Android,Events,Event Handling,Observer Pattern,在Java空间中,事件处理通常通过实现多播观察者模式的接口分派来完成。然而,在安卓系统上,许多界面的定义就像只有一个订阅者一样。例如,定义SetOnSeekbarchaneListener(..)而不是AddOnSeekbarchaneListener(..) 出于各种原因,如果组合的不同部分调用setOnSeekBarChangeListener(..),其中后一个调用会删除前一个订阅者,那么这可能是非常有限的,并且还会引入错误。。。安静地 为什么它在Android上以这种方式实现?当对现有小
为什么它在Android上以这种方式实现?当对现有小部件进行子类化时,我是否只需要滚动自己的事件处理,而不接触现有的外部公开的小部件?“静默”不太可能。这些语义包含在方法名中:set(should)始终表示“将值更改为新值”。您始终可以对其进行扩展,并创建自己的实现。你不受限制我默默地说,因为如果组件B(组件a的一个子类)本身使用回调,并且组件B的用户希望能够将其用于自己的组件C,那么组件B将崩溃-组件C无法判断回调是否“被接受”B组分的显影剂也无法限制暴露。我想这是一个很好的例子,为什么组合比继承更受欢迎,但我仍然不明白为什么单播限制首先存在。