Шаблон наблюдателя против функции - PullRequest
0 голосов
/ 13 февраля 2019

Шаблон Observer кажется слишком затратным для того, что по сути является вызовом сгруппированной функции

См. Ссылку CodePen на статью объяснение шаблона-наблюдателя в javascript

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

Хотя это делает то же самое проще Forked CodePen Здесь

Я понимаю, что нет методов подписки / отмены подписки, но добавление / удаление из массива toNotify аналогично.

Кодовый код:

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);
});

Код легче читать, кодировать и анализировать.

Однако я, возможно, упускаю точку образца наблюдателя, и мой скромный пример сломался бы в других случаях, когда образец наблюдателя восторжествовал бы и бросил мой пример на обочину.Я угадываю занятия, государственное управление?

Если вы можете дать мне знать, что я упускаю, и / или привести несколько примеров того, как образец наблюдателя действительно сияет, это тоже было бы замечательно

...