Шаблоны Java. Observer (Наблюдатель)

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.พ. 2025
  • proselyte.net/

ความคิดเห็น • 46

  • @АлексейОверченко-ц7и
    @АлексейОверченко-ц7и 4 ปีที่แล้ว +2

    Всё по существу, поставленная речь. приятно и смотреть и слушать. Спасибо большое!

  • @МайкиТи-в7м
    @МайкиТи-в7м 3 ปีที่แล้ว +1

    Объясняете невероятно хорошо, смотрю 4 ваше видео про паттерны. Большое Вам спасибо!

  • @simple_6230
    @simple_6230 8 ปีที่แล้ว +5

    Super kanal! Mnogo interesnoi informacii!
    Spasibo Eugene!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 ปีที่แล้ว

      Пожалуйста )
      Спасибо за отзыв.

  • @alexeysamsonov792
    @alexeysamsonov792 8 ปีที่แล้ว +6

    Спасибо за видео.! То что нужно!

  • @zeretteompany3094
    @zeretteompany3094 4 ปีที่แล้ว

    Отличный урок. Рекомендую его всем
    Желаю автору канала не забрасывать его.

  • @ArcanumTeam
    @ArcanumTeam 24 วันที่ผ่านมา

    Спасибо за видео, но у меня вопрос - а есть ли готовые решения из коробки для реализации событий и подписки не них? У меня в проекте в одном объекте множество событий которые должны отслеживать множество других объектов - и писать обёртку под каждый тип события как-то затратно чтоли. Или я что-то не до конца понял? Хочется какую то простую структуру - объявил ивент, подписал на него кого надо, и вызываю его когда надо. :)

  • @azerphoenix
    @azerphoenix 4 ปีที่แล้ว +1

    Отличный урок! Спасибо)

  • @dreamer_vi905
    @dreamer_vi905 4 ปีที่แล้ว +2

    Всё четко!

  • @Revolted14
    @Revolted14 3 หลายเดือนก่อน

    Спасибо :)

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 หลายเดือนก่อน

      @@Revolted14 спасибо за отзыв!

  • @Pakmen_gamer
    @Pakmen_gamer 9 หลายเดือนก่อน

    +вайб, респект

    • @EugeneSuleimanov
      @EugeneSuleimanov  9 หลายเดือนก่อน

      Спасибо за поддержку!

  • @Andrzej3935
    @Andrzej3935 2 ปีที่แล้ว

    Большое спасибо

  • @buchs4819
    @buchs4819 4 ปีที่แล้ว

    в методе main в первых двух случаях, когда мы добавляем вакансии (addVacancy) метод notifyObservers не реализуется, потому что ни одного observer еще не существует в списке. Я правильно понимаю, что здесь мы должны обрабатывать ошибку nullPointerException??

    • @kafychannel
      @kafychannel 4 ปีที่แล้ว

      Нет, Nullpointer мог выскочить, если бы мы сделали так List observers;
      Не проиниуиализировав наш список, а проверку на пустоту подписчиков ты можешь проверять через метод size, к примеру,
      notifyObservers(List) {
      if(observerd.size == 0) {
      println("Подписчиков нету, некого уведомлять о новых вакансиях " )
      } else (
      Проходимся через цикл for each, как в видео и у каждого обсервера вызываем onHandleEvent(vacancies)
      )
      }

  • @SplashDmg2011
    @SplashDmg2011 5 ปีที่แล้ว +1

    Подскажите пожалуйста название вашего плагина для отображения UML-диаграмм.

    • @EugeneSuleimanov
      @EugeneSuleimanov  5 ปีที่แล้ว +1

      Это стандартный плагин, который входит в ultimate версию intellij idea. В community, насколько я знаю, его нет.

    • @КириллПешин
      @КириллПешин 4 ปีที่แล้ว

      @@EugeneSuleimanov А не подскажете где его искать... Может конечно его попросту нет в Ultimate Beta, но, что-то не нахожу...

  • @AndreyDeveloper
    @AndreyDeveloper 8 ปีที่แล้ว

    Очень хорошее видео. А мог бы автор ещё отснять ролик по шаблону проектированию делегат? Очень надо.

  • @vladder2312
    @vladder2312 5 ปีที่แล้ว

    А если у меня всё-таки один-ко-многим связь, мне в классах наблюдателях нужно везде создавать новый объект класса наблюдаемого?

    • @TheKifsif
      @TheKifsif 5 ปีที่แล้ว

      Классы, на которые подписываются, называются субъектами (Subject), а не наблюдаемыми.
      Подробнее здесь: на pcask.ru/programmirovanie/pattern-observer/

  • @Михаил-д5ж6ю
    @Михаил-д5ж6ю 3 ปีที่แล้ว

    у этого паттерна корреляция с Медиатором есть. Чем-то схожи в функциональности.

  • @НурканатБагдатулы
    @НурканатБагдатулы 2 หลายเดือนก่อน

    чел хорош

  • @serik3818
    @serik3818 4 ปีที่แล้ว

    Как срабатывает notifyObservers?)))

    • @dreamer_vi905
      @dreamer_vi905 4 ปีที่แล้ว

      когда добавляется или удаляется вакансия, происходит вызов notifyObservers(). Этот метод вызывает у всех наблюдателей метод handleEvent().

  • @aleksei4604
    @aleksei4604 4 ปีที่แล้ว

    Очень похож на медиатор

  • @yevhenshevtsov6056
    @yevhenshevtsov6056 6 ปีที่แล้ว +1

    зачем в методах постоянно указывать this?

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 ปีที่แล้ว +3

      Своего рода - игра в капитана очевидность ) А на самом деле - и без этого будет работать - вы правы

    • @ДенисЩурин-щ1к
      @ДенисЩурин-щ1к 5 ปีที่แล้ว +3

      @@EugeneSuleimanov я думал может это так принято делать, чтобы акцентировать внимание на этом. Но походу в реальных проектах никто лишнее this не будет писать.

    • @Олег-п6ш3ч
      @Олег-п6ш3ч 4 ปีที่แล้ว

      @@EugeneSuleimanov thanks

    • @Alex-gn6xb
      @Alex-gn6xb 3 ปีที่แล้ว

      @@ДенисЩурин-щ1к не будет тк путает

  • @Sk-gb2hx
    @Sk-gb2hx 3 ปีที่แล้ว

    +

  • @АзатАбдуллин-ш6в
    @АзатАбдуллин-ш6в 6 ปีที่แล้ว +3

    Хороший ролик. Только по клаве бьешь аж уши режет)

  • @olletred536
    @olletred536 4 ปีที่แล้ว

    не стучи так по клаве кнопки сломаешь

  • @ionelvaselescu6604
    @ionelvaselescu6604 3 ปีที่แล้ว

    Громче! Надо еще громче стучать по этим долбаным клавишам, потому что еще есть куда сильнее бесить.

  • @rossnobody
    @rossnobody 7 ปีที่แล้ว

    Чем данная реализация лучше от элементарного расширение интерфейсом Observer docs.oracle.com/javase/7/docs/api/java/util/Observer.html и переопределении метода update?

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 ปีที่แล้ว +1

      Василий Решетняк Данная реализация не должна быть лучше какой-либо. Ее цель - показать основные аспекты шаблона проектирования "Наблюдатель".

    • @rossnobody
      @rossnobody 7 ปีที่แล้ว

      моя ошибка) Не корректно поставил вопрос. Чем может быть лучше в плане поддержки и расширении кода? У меня задача "наблюдать" за несколькими полями объекта, которые изменяются не всегда все сразу, а в зависимости от бизнес логики. В дальнейшем необходимо вести обновление записи в локальной БД с учетом измененного состояния поля

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 ปีที่แล้ว

      В данном случае, конечно же, лучше использовать уже готовые реализации.

    • @qwerty-hc7od
      @qwerty-hc7od 5 ปีที่แล้ว +4

      Коммент больше не к автору комментария, а больше для тех, кто смотрит в 2019 году и позже.
      Обратите внимание, что интерфейс Observer и класс Observable являются deprecated, начиная с Java9. Они рекомендуют (это прямо написано в комментарии в коде JDK), что стоит использовать, например, очереди из пакета java.util.concurrent. docs.oracle.com/javase/9/docs/api/java/util/Observable.html
      Хорошие и при этом простые, на мой взгляд, примеры, как использовать очереди в паттерне Издатель-Подписчик (он же Наблюдатель) в многопоточных приложениях есть, например, вот тут www.mkyong.com/java/java-blockingqueue-examples/

    • @КириллПешин
      @КириллПешин 4 ปีที่แล้ว +1

      @@qwerty-hc7od Привет из 2020 :-) даже в этом году, может потребоваться этот шаблон :-)
      Для того, что бы знать, что он есть...
      Или если ты до сих пор на Java8 в продакшене :-)