Тёмный

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

webDev
Подписаться 118 тыс.
Просмотров 18 тыс.
50% 1

Опубликовано:

 

30 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 42   
@AndKozinsky
@AndKozinsky 4 года назад
Спасибо. У вас получается писать понятный код. На слух с первого раза не воспринимаю объяснения, но после анализа кода всё встаёт на свои места. Смотрел про шаблоны проектирования из двух других источников, ваши варианты самые простые для понимания. Осталось только внедрить это в работу.
@YauhenKavalchuk
@YauhenKavalchuk 4 года назад
Спасибо за отзыв)
@КотМатроскин-х9ь
@КотМатроскин-х9ь 3 года назад
вот именно он просто как репер зачитывает инфу откуда то, ни души ни вклада нет в его видосах, тупо чтец и жнец... он
@parnasmi
@parnasmi 2 года назад
Коротко и ясно! Отличный урок. На этом паттерне основан Event Bus.
@YauhenKavalchuk
@YauhenKavalchuk 2 года назад
Спасибо
@ЕгорРура
@ЕгорРура 9 месяцев назад
Спасибо за новую частичку знаний в программировании )) Всё ясно и понятно!
@YauhenKavalchuk
@YauhenKavalchuk 9 месяцев назад
Всегда пожалуйста
@yurii873
@yurii873 3 года назад
Спасибо. Все очень просто если уже работаешь или работал с подписками )
@YauhenKavalchuk
@YauhenKavalchuk 3 года назад
Пожалуйста)
@Antonym-b5o
@Antonym-b5o 4 года назад
кстате понятно обьяснил, днем прокину все что описал себе в проект
@POEOneLove
@POEOneLove 8 месяцев назад
Обсерверы меня спасли. Но реализацию расширил. Под каждую функцию в классе которая меняет состояние объекта пишу dispatch(event name). И реализую функцию в наблюдаемом объекте on(eventname). Собственно тоже самое что и на видео, но можно отправлять только подписоте подписанной на конкретный event name. Мб паранойя, но кажется так вроде меньше рендера.
@YauhenKavalchuk
@YauhenKavalchuk 6 месяцев назад
👍
@vasman94
@vasman94 2 месяца назад
В теги к видео надо закинуть rxjs - там вообще всё об этом =)
@YauhenKavalchuk
@YauhenKavalchuk 2 месяца назад
Потому что rxjs и использует этот паттерн, mobx кстати тоже
@vasman94
@vasman94 2 месяца назад
@@YauhenKavalchuk так об этом и говорю =)
@questions--answers-7
@questions--answers-7 10 месяцев назад
like
@YauhenKavalchuk
@YauhenKavalchuk 10 месяцев назад
👍
@uzver3787
@uzver3787 4 года назад
1.20 минут посмотрел и всё...такое ощущение,что с книги прочитано прямым текстом.
@YauhenKavalchuk
@YauhenKavalchuk 3 года назад
Я пишу сценарий, прежде чем что-то рассказывать
@ОксанаГаращенко-д5р
нет примера с unregister, если что в данном примере нужно передавать без new, выяснено опытным путём)
@YauhenKavalchuk
@YauhenKavalchuk 2 года назад
👍
@yevheniikulynych6041
@yevheniikulynych6041 4 года назад
EventBus это тот же Observer только с чуть большими возможностями? я правильно понимаю?
@YauhenKavalchuk
@YauhenKavalchuk 4 года назад
Да, что-то похожее есть
@disgracefulsense7882
@disgracefulsense7882 3 года назад
Есть ли паттерн обратный принципу действия обсервера, когда у нас есть один наблюдатель и много объектов ?
@YauhenKavalchuk
@YauhenKavalchuk 3 года назад
Нет, паттерна нет. Но такую логику можно сделать самостоятельно
@carry-on-chaos4032
@carry-on-chaos4032 2 года назад
в register в роли observer выступает инстанс класса, а в метод unregister передаём класс, как-то некрасиво выходит, нужно переписать метод register и передавать туда класс, а пушить в actions инстанс класса
@YauhenKavalchuk
@YauhenKavalchuk 2 года назад
👍 ну да, как вариант
@piligr1m_ua_
@piligr1m_ua_ 4 года назад
ну такое, простыми словами было б понятнее
@YauhenKavalchuk
@YauhenKavalchuk 3 года назад
Я старался(
@ka10k
@ka10k 5 лет назад
Не надо так старательно ломать язык на слове register, тем более ударение неверное. Реально режет по ушам.
@oce10t12
@oce10t12 5 лет назад
ставь 1.25 скорость
@Bezzil
@Bezzil 4 года назад
у него почти весь английски так, произносит много чего как учительница младших классов английского из омского посёлка
@YauhenKavalchuk
@YauhenKavalchuk 3 года назад
Учту
@aleksd286
@aleksd286 5 лет назад
Ок. Все равно не вижу смысла в этом паттерне при создании React приложений. Ведь в действительности, если у меня меняются какие-то данные асинхронно с неизвестной переодичностью, то скорее всего использую сокеты, ловлю событие и изменяю стейт приложения (useState/useContext/Redux) и передаю эти пропы нужным компонентам, а они уже сами реагируют на изменения. Зачем такой огород пилить уже вокруг готового функционала? ПС. Вижу как на бэке можно это использовать, но на фронте, извините
@YauhenKavalchuk
@YauhenKavalchuk 5 лет назад
Река-приложение было чисто для примера. Для того, что бы проще было проветри аналогию. Вообще, многие из рассмотренных паттернов зашиты непосредственно в сами библиотеки и фрэймворки. В чистом виде они используются, в большинстве своём, при программировании на нативном JS
@artedza
@artedza 5 лет назад
Порой, приходится использовать чистый джиэс. Вот тогда и полезно прибегать к подобным решениям. А во фреймворках все работает под капотом.
@aleksd286
@aleksd286 5 лет назад
@@artedza нативный JS есть смысл писать только в одном случае, если ты сам пилишь какую-то библиотеку и не хочешь иметь никаких зависимостей к другим. В реальном мире это не работает
@keksinjo
@keksinjo 4 года назад
Aleks D вообще, есть большое количество Легаси проектов, где можно неплохо найти применение паттернам
@Antonym-b5o
@Antonym-b5o 4 года назад
ты сейчас просто описал модель которую использует фейсбук)
@killvapkillvaps3719
@killvapkillvaps3719 3 года назад
метод не робіт 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
@YauhenKavalchuk
@YauhenKavalchuk 3 года назад
В описании есть ссылка на репозиторий - можете сверить код
Далее
Javascript Design Patterns #5 - Observer Pattern
8:12