Javascript 观察者模式是单向数据流还是双向数据流

Javascript 观察者模式是单向数据流还是双向数据流,javascript,Javascript,我打算使用观察者模式在模型值更改后自动更新视图。很明显,模型是可观察的(subject),DOM元素是观察者,它们盯着模型看任何更改,以便能够自我更新 但是如果我有一个观察模型值的按钮,点击修改模型值,观察者模式是单向的,但是您的用例是双向的,同时扩展了观察者模式的实现,那么您认为它仍然是单向的数据流吗 观察者模式定义,如果主题对象被更新,它将通知观察者,观察者将相应地实现notify()函数 你所描述的不是那种模式的一部分。您可以实现它,如果数据流是双向的。但它不是模式定义的一部分 伪代码是

我打算使用观察者模式在模型值更改后自动更新视图。很明显,模型是可观察的(subject),DOM元素是观察者,它们盯着模型看任何更改,以便能够自我更新


但是如果我有一个观察模型值的按钮,点击修改模型值,观察者模式是单向的,但是您的用例是双向的,同时扩展了观察者模式的实现,那么您认为它仍然是单向的数据流吗


观察者模式定义,如果主题对象被更新,它将通知观察者,观察者将相应地实现notify()函数


你所描述的不是那种模式的一部分。您可以实现它,如果数据流是双向的。但它不是模式定义的一部分

伪代码是这样的:按钮本身是一个观察者,按钮标签盯着模型值,按钮点击会改变模型值并调用通知所有观察者(包括按钮本身,因为它是一个观察者),所以它是观察者模式,就像@joh说的,副作用不是模式的一部分。这是您的用例所做的事情。观察者模式只处理一个方向上的事件传播。所以观察者模式是单向的,而我的用例是双向的,不是吗?@johannesp:请编辑你的答案,这样我就可以直接接受它,就像“观察者模式是单向的,但你的用例是双向的”因为我并没有看到你们提到的观察者模式是单向或双向的,所以观察者模式是单向的,我的用例是双向的,不是吗?