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

Поділитися
Вставка
  • Опубліковано 11 чер 2016
  • proselyte.net/

КОМЕНТАРІ • 42

  • @user-yb9yk5en3t
    @user-yb9yk5en3t 3 роки тому +1

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

  • @azerphoenix
    @azerphoenix 3 роки тому +1

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

  • @user-hc6vo7nf2x
    @user-hc6vo7nf2x 3 роки тому

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

  • @zeretteompany3094
    @zeretteompany3094 4 роки тому

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

  • @simple_6230
    @simple_6230 7 років тому +5

    Super kanal! Mnogo interesnoi informacii!
    Spasibo Eugene!

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 років тому

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

  • @alexeysamsonov792
    @alexeysamsonov792 7 років тому +6

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

  • @dreamer_vi905
    @dreamer_vi905 3 роки тому +2

    Всё четко!

  • @Andrzej3935
    @Andrzej3935 Рік тому

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

  • @AndreyDeveloper
    @AndreyDeveloper 7 років тому

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

  • @Pakmen_gamer
    @Pakmen_gamer 14 днів тому

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

  • @SplashDmg2011
    @SplashDmg2011 4 роки тому +1

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  4 роки тому +1

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

    • @user-mp4sd6vj8n
      @user-mp4sd6vj8n 4 роки тому

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

  • @buchs4819
    @buchs4819 3 роки тому

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

    • @kafychannel
      @kafychannel 3 роки тому

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

  • @user-lk2jn4gs9q
    @user-lk2jn4gs9q 2 роки тому

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

  • @vladder2312
    @vladder2312 4 роки тому

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

    • @TheKifsif
      @TheKifsif 4 роки тому

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

  • @rossnobody
    @rossnobody 6 років тому

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 років тому +1

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

    • @rossnobody
      @rossnobody 6 років тому

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 років тому

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

    • @qwerty-hc7od
      @qwerty-hc7od 4 роки тому +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/

    • @user-mp4sd6vj8n
      @user-mp4sd6vj8n 4 роки тому +1

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

  • @aleksei4604
    @aleksei4604 3 роки тому

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

  • @serik3818
    @serik3818 3 роки тому

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

    • @dreamer_vi905
      @dreamer_vi905 3 роки тому

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

  • @Sk-gb2hx
    @Sk-gb2hx 3 роки тому

    +

  • @yevhenshevtsov6056
    @yevhenshevtsov6056 5 років тому +1

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  5 років тому +3

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

    • @user-gw7qs1qx9o
      @user-gw7qs1qx9o 4 роки тому +3

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

    • @user-gb8fv2kw1b
      @user-gb8fv2kw1b 3 роки тому

      @@EugeneSuleimanov thanks

    • @Alex-gn6xb
      @Alex-gn6xb 2 роки тому

      @@user-gw7qs1qx9o не будет тк путает

  • @user-ng2jk2ps4p
    @user-ng2jk2ps4p 6 років тому +3

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

  • @olletred536
    @olletred536 4 роки тому

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

  • @ionelvaselescu6604
    @ionelvaselescu6604 3 роки тому

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