观察者模式与功能

时间:2019-02-13 02:31:37

标签: javascript design-patterns observer-pattern

观察者模式对于本质上是一个分组函数调用来说似乎有很多开销

请参阅文章the-observer-pattern-in-javascript-explained上的CodePen链接

Please "try" to ignore the lack of non-DRY code in the example.

这只是简化Forked CodePen Here

我意识到没有订阅/取消订阅方法,但是从toNotify数组中添加/删除是相似的。

Codepen代码:

const input = document.querySelector('.js-input');
const p1 = document.querySelector('.js-p1');
const p2 = document.querySelector('.js-p2');
const p3 = document.querySelector('.js-p3');

const toNotify = [p1, p2, p3]

function notify(text) {
  toNotify.forEach(update => update.textContent = text)
}

input.addEventListener('keyup', e => {
  notify(e.target.value);
});

代码更易于阅读,编码和解释。

但是,我可能会缺少观察者模式的要点,而在其他情况下,当观察者模式取得成功并将我的示例踢到路边时,我谦虚的示例可能会中断。我在猜课,状态管理?

如果您可以让我知道我所缺少的内容和/或提供一些观察者模式真正发光之处的例子,那么这也很好

0 个答案:

没有答案