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

  Рет қаралды 11,869

Vladimir Vysokomornyi

Vladimir Vysokomornyi

Күн бұрын

Пікірлер: 21
@anjelomanoranjan
@anjelomanoranjan 11 ай бұрын
Да, было очень интересно и понятно! Жду новых видео по Java
@бычара
@бычара 4 жыл бұрын
Ну это однозначный лайк! Очень полезно! Автор вы молодец! Жду новых видео
@ALEX-pi1zs
@ALEX-pi1zs 5 жыл бұрын
Для тех кто не понял, почему в последнем примере вывелось 8 строчек вместо 10, поясню: чтобы вывелось 10 строчек, надо добавить в методе doSometing(Human human) класса Weekend ещё одну строчку в последнем блоке else : human.doSomething();
@alexanderkostyuk755
@alexanderkostyuk755 6 жыл бұрын
Я бы сказал так, что: - Когда применяется данный паттерн(State): - "Когда необходимо уйти от многочисленных условных конструкций". У вас Вы добавляете "многочисленные условные конструкции" в Методе NextStation() класса Radio, и вы вдобавок нарушили один из принципов SOLID - "Liskov substitution principle". Т.Е. нам нужно уйти он условных конструкций с помощью Этого Патерна, а увас получилось так что вы наоборот пришли к ним. Я бы преределал Так: public interface IStation { void Play(); IStation NextStation(); } public class RadioFm : IStation { public void Play() {Console.WriteLine("Radio FM");} public IStation NextStation() {return new RadioFora();} } public class RadioFora : IStation { public void Play() {Console.WriteLine("Radio Fora");} public IStation NextStation() {return new RadioFm();} } public class Radio { public IStation Station; public void NextStation() {Station = Station.NextStation();} public void Play() {Station.Play();} } и Radio radio = new Radio {Station = new RadioFm()}; radio.Play(); radio.NextStation(); radio.Play(); Спасибо!!!
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 6 жыл бұрын
да ты правильно написал. сам так же реализовывал этот паттерн и видел другие реализации таким способом
@TheMerdontv
@TheMerdontv 5 жыл бұрын
твой код жестко связан и ничем не отличается от примера автора.
@nikolaygoltsov1782
@nikolaygoltsov1782 8 жыл бұрын
Доходчиво и понятно.
@toxicknight3079
@toxicknight3079 5 жыл бұрын
Так и не понял почему в примере с Human вывело 8 сообщений, а не 10, хотя в цикле было прописано именно 10 итераций.
@oleksandr-petrovych
@oleksandr-petrovych 8 жыл бұрын
Объек состояния будет сам менять состояние контекста. Изнутри ? Примеры какие то совсем не понятные. Где и когда нужно применять этот шаблон ?
@lichlichi
@lichlichi 6 жыл бұрын
Везде где есть набор каких либо подклассов объекта. Например у тебя есть класс Фильм, фильмы бывают разных жанров. Вот State будет Жанром фильма со своими подклассами(фэнтези, комедии, боевики), а контекстом будет просто Movie с агрегацией на Жанр.
@torcher5023
@torcher5023 3 жыл бұрын
А зачем нужны все эти паттерны, если в итоге всё сводится к ифам?
@torcher5023
@torcher5023 3 жыл бұрын
Ох уж эти программисты-анальники со своим юмором
@angular-developer-e1t
@angular-developer-e1t 7 жыл бұрын
eclipse козлом обозвали. Он обиделся и ушёл. А если серьёзно - оказывается Redux на шаблоне State построен
@user_drew25
@user_drew25 7 жыл бұрын
всё вроде работает я только не понял почему при счётчик цикла for (int i = 0; i < 10 ; i++) { h.doSomething(); } i = 10 на выходе получаем Работаем!!! Отдыхаем(Zzz) Отдыхаем(Zzz) Отдыхаем(Zzz) Работаем!!! Отдыхаем(Zzz) Отдыхаем(Zzz) Отдыхаем(Zzz) то есть 8 строчек а не 10 я потестил со счётчиком i=1, i=2, i=3, i=4 получаем ожидаемые 1 , 2, 3 и 4 строчек соответственно, а вот при i = 5 получаем почему то не 5 строчек а те же 4 как т при i = 4 то есть теряется 1 итерация что ли? Я не шибко опытный кодер может ребята поопытнее меня найдут почему так и исправят ошибку? Автор, спасибо всё очень доходчиво .
@paradise_cracked
@paradise_cracked 7 жыл бұрын
thx
@narekf
@narekf 5 жыл бұрын
дядя, если ты действительно хочешь своими уроками помочь, тебе нужно поработать над тем, чтоб ПРАВИЛЬНО излагать мысли, а не чтоб зритель сам всё склеивал у себя в голове
@васявасев-р2ш
@васявасев-р2ш 6 жыл бұрын
говноуроки от говногуру
@lichlichi
@lichlichi 6 жыл бұрын
Обоснуешь, или просто насрать в коменты решил?
@alexandrdeveloper1242
@alexandrdeveloper1242 6 жыл бұрын
c категоричностью выше насравшего не согласен, но однако есть сомнения в правильности показанного. Шаблон "состояние" относится к группе структурных и из названия ясно что его задача именно хранить состояния Это тесно переплетается с шаблоном flyweight (не помню русского названия) - при присвоении сохраненного состояния к объекту flyweight он становится полновесным объектом считывая из объекта "состояния" свое новое состояние. Сам объект стэйт ничего не меняет Он призван создать абстракцию именно хранения данных А то что в видео больше похоже на машину состояний Возможно путанница с названиями...
Шаблоны Java. Шаблонный метод (Template Method)
10:28
Vladimir Vysokomornyi
Рет қаралды 9 М.
Шаблоны Java. Посетитель (Visitor)
29:35
Vladimir Vysokomornyi
Рет қаралды 9 М.
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 36 МЛН
كم بصير عمركم عام ٢٠٢٥😍 #shorts #hasanandnour
00:27
hasan and nour shorts
Рет қаралды 11 МЛН
One day.. 🙌
00:33
Celine Dept
Рет қаралды 42 МЛН
Шаблоны Java. Строитель (Builder)
19:36
Vladimir Vysokomornyi
Рет қаралды 26 М.
Java шаблон Состояние/State
12:26
Alexey Pashchenko
Рет қаралды 1,5 М.
Шаблоны Java. Стратегия (Strategy)
18:05
Vladimir Vysokomornyi
Рет қаралды 15 М.
Шаблоны Java. Proxy (Прокси)
7:01
Eugene Suleimanov
Рет қаралды 27 М.
Шаблоны Java. Хранитель (Memento)
13:11
Vladimir Vysokomornyi
Рет қаралды 8 М.
Шаблоны Java. Одиночка (Singleton)
31:02
Vladimir Vysokomornyi
Рет қаралды 18 М.
Java+Web (JSP/Servlets). Урок 5: web.xml и/или аннотации
17:00
Vladimir Vysokomornyi
Рет қаралды 21 М.
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 36 МЛН