Шаблоны Java. State (Состояние)

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

КОМЕНТАРІ • 21

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

    Писать код, спать, читать и тренироваться. Да это же идеальный программист )))

    • @stas4985
      @stas4985 3 роки тому +6

      совсем ку ку? идеально это вместо писанины кода играть во что то и вместо чтения смотреть аниму на роботе

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

      Робот какой-то а не человек)

  • @ecclesiastes2000
    @ecclesiastes2000 3 роки тому +18

    Я недоволен этой реализацией, если будет больше условий и изменения состояний не линейные, как у вас в примере, т.е. я могу вернуться обратно в предыдущее состояние или вообще перескочить, то у вас будет огромный вложенный if в одном месте. А паттерн должен этот if разбивать на классы. В общем, условия должны перетечь в классы реализации активити и в них же должно меняться состояние активити. Чтобы было яснее, нарисуйте детерминированный конечный автомат чуть сложнее вашего и примера и станет ясно, где ошибка

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

      Спасибо за комментарий, я попробую реализовать по вашему описанию.

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

      добрый день, а можно пример как паттерн должен этот "if" разбивать на классы?

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

    Спасибо за видео! Изучаю паттерны по вашим роликам, все ясно и понятно.

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

    Вы говорите что шаблон применяется когда много условных операторов. При таком подходе, который вы описали, получается что к условным операторам прибавилось столько же классов. Во первых, условные операторы остались в методе changeActivity() класса Developer, во вторых, если нужно добавить новое состояние, нам нужно не просто сделать новую проверку, а еще и добавить новый класс для нужного состояния.

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

      Вы немного не том сделали акцент - главное - это то, что выбор ветви зависит от состояния объекта.
      Если добавить сюде стремление следовать SOLID - то данный шаблон крайне полезен (при уместном его использовании).

    • @mansurnashaev6486
      @mansurnashaev6486 7 років тому +1

      Забыл отметить что только учусь. Поэтому могу ошибаться.

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

      Как и все мы :)

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

    Спасибо за материалы. Сжато и быстро!
    Idea Preferences / Editor / File and Code Templates / Includes / File Header (adjusting the header of the class)
    or
    Idea Preferences / Editor / File and Code Templates / Class (removing the whole header of the class)

  • @alexanderstepin
    @alexanderstepin Рік тому +2

    А не лучше было бы прописать прямо в конкретных реализациях activity у каждого действия его следующее действие? И код получился бы кучи if else

  • @user-qf9um5qb9d
    @user-qf9um5qb9d Рік тому

    Добрый вечер.
    Спасибо за урок.
    Есть вопрос.
    Такой подход ведь нарушает принцип единой ответственности.
    Когда один объект начинает уметь выполнять разные вещи.
    Или здесь "центральный объект" служит перекрестком для других объектов, которые как раз таки и удовлетворяют приницпу единой ответственности.
    То есть как бы не объект может делать много вещей, а он вмещает в себя функционал разных объектов.
    Я правильно понимаю?

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

    Спасибо)

  • @vladsaichenko1946
    @vladsaichenko1946 7 місяців тому +1

    Анжумания делат, пресс качат, бегит

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

    Thank's a million

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

    Это же FSM как понимаю?

  • @maslus
    @maslus 2 роки тому

    Насколько я понимаю, этот шаблон также реализуется через enum. А в Java17 - через sealed классы