JavaScript Паттерны #21 - Observer (Наблюдатель)

preview_player
Показать описание
#YauhenK #webDev #JS #JSPatterns

Всех приветствую в курсе «JavaScript Паттерны».
В данном видео-курсе мы с вами рассмотрим самые распространённые паттерны проектирования, которые используются при разработке.
Паттерны, или шаблоны - это определённые, зарекомендовавшие себя конструкции, которые служат для решения типовых задач программирования.
Рассматривать мы их с вами будем на примере языка JavaScript в синтаксисе ES6.

✒ Репозиторий курса:

✒ Используемые ресурсы и инструменты:

✒ Полезные ссылки:

✒ Полный список готовых и планируемых курсов:

✒ Автор курса:

Рекомендации по теме
Комментарии
Автор

Спасибо. У вас получается писать понятный код. На слух с первого раза не воспринимаю объяснения, но после анализа кода всё встаёт на свои места. Смотрел про шаблоны проектирования из двух других источников, ваши варианты самые простые для понимания. Осталось только внедрить это в работу.

AndKozinsky
Автор

Спасибо за новую частичку знаний в программировании ))
Всё ясно и понятно!

rbswkut
Автор

Коротко и ясно! Отличный урок. На этом паттерне основан Event Bus.

parnasmi
Автор

Спасибо. Все очень просто если уже работаешь или работал с подписками )

yurii
Автор

кстате понятно обьяснил, днем прокину все что описал себе в проект

cgpqkht
Автор

В теги к видео надо закинуть rxjs - там вообще всё об этом =)

vasman
Автор

Обсерверы меня спасли. Но реализацию расширил. Под каждую функцию в классе которая меняет состояние объекта пишу dispatch(event name). И реализую функцию в наблюдаемом объекте on(eventname). Собственно тоже самое что и на видео, но можно отправлять только подписоте подписанной на конкретный event name. Мб паранойя, но кажется так вроде меньше рендера.

POEOneLove
Автор

нет примера с unregister, если что в данном примере нужно передавать без new, выяснено опытным путём)

ctdnxjo
Автор

1.20 минут посмотрел и всё...такое ощущение, что с книги прочитано прямым текстом.

uzver
Автор

EventBus это тот же Observer только с чуть большими возможностями? я правильно понимаю?

yevheniikulynych
Автор

метод не робіт
autonews.unregister(new Max());
"unregister(observer) {
this.actions = this.actions.filter(el => !(el instanceof observer));
}"
TypeError: Right-hand side of 'instanceof' is not an object

killvapkillvaps
Автор

Есть ли паттерн обратный принципу действия обсервера, когда у нас есть один наблюдатель и много объектов ?

disgracefulsense
Автор

в register в роли observer выступает инстанс класса, а в метод unregister передаём класс, как-то некрасиво выходит, нужно переписать метод register и передавать туда класс, а пушить в actions инстанс класса

carry-on-chaos
Автор

Не надо так старательно ломать язык на слове register, тем более ударение неверное. Реально режет по ушам.

kak
Автор

ну такое, простыми словами было б понятнее

piligrm_ua_
Автор

Ок. Все равно не вижу смысла в этом паттерне при создании React приложений.
Ведь в действительности, если у меня меняются какие-то данные асинхронно с неизвестной переодичностью, то скорее всего использую сокеты, ловлю событие и изменяю стейт приложения (useState/useContext/Redux) и передаю эти пропы нужным компонентам, а они уже сами реагируют на изменения.
Зачем такой огород пилить уже вокруг готового функционала?

ПС.
Вижу как на бэке можно это использовать, но на фронте, извините

aleksd