【发布时间】:2017-01-13 00:41:30
【问题描述】:
我正在尝试学习观察者和发布者-订阅者模式。
通过这个简单的例子here
问题:有一个按钮,点击按钮应该更新计数。
没有任何模式,我可以简单地做
window.onload = function() {
var container = document.querySelector('.container');
var count = 0;
container.querySelector('#click').addEventListener('click', function() {
count = +document.querySelector("#count").innerHTML;
count++;
document.querySelector("#count").innerHTML = count;
});
}
<div class="container">
<input type="button" id="click" value="click">Total Counts: <span id="count">0</span>
</div>
在上面我分享的关于观察者模式的链接中,它有一个使用观察者模式jsbin的相同实现@
我的问题是使用模式不会使代码复杂化。我真的很难理解代码到底想解决什么问题。有人可以解释一下吗?this.notify 在 jsbin 代码中做了什么。
请帮忙
谢谢
【问题讨论】:
-
嗯 ...
simple example声明 观察者模式是一种允许元素之间通信而无需依赖事件、回调或轮询的简单方法。 -但是您发布的 jsbin 使用事件,因此 jsbin 与简单示例无关 -
我分享的链接有一个指向这个 jsbin 的链接...如果这不是正确的方式,你能解释一下我们如何在这里使用它
-
oops ... 抱歉,在演示页面中没有看到 onclick ... 似乎该演示页面在声明不依赖事件的代码中使用事件是自相矛盾的... . 由于演示页面本身是自相矛盾的,我不可能开始“解释”如何使用它,甚至作者都无法做到!
-
好的,如果是这样的话,你能举一个观察者模式使用的例子吗,这对我理解真的很有帮助
-
我刚刚解释了,那个观察者模式页面是自相矛盾的,我不能假设它知道作者的意图
标签: javascript jquery design-patterns publish-subscribe observer-pattern