# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
2 теста |
|||
Мы начинаем знакомство с шаблоном проектирования Состояние. На этом уроке мы узнаем назначение этого шаблона и его отличия от Стратегии. Далее мы напишем две программы: игру Камень-ножницы-бумага и целый Калькулятор. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 7 час. 10 мин. [Показать отчёт] Научился: поведенческий шаблон проектирования Состояние очень напоминает перегружаемые методы В зависимости от контекста один и тот же интерфейс, как я понял из вводной, способен по-разному выполнять свои задачи Простейший пример - старый плёночный магнитофон, в зависимости от того, в каком он состоянии (в каком режиме работает), от него получают разный результат (музыка играет или наоборот что-то записывается в этот момент), и доступны разные функции. К примеру, когда идет запись, невозможно включить перемотку Отличие шаблона Состояние от шаблона Стратегия в бОльшей гибкости, если Стратегия выбирается и шаг вправо, шаг влево - запрет, то Состояние не имеет этих ограничений Вспомнилась старая песня Толкуновой о женской жизни от младых ногтей, до старости - не Стратегия, ибо возможны девиации Как раз ближе к Состоянию - в разные периоды у дам разные задачи и цели и переходы из одного в другое состояние возможны вариативно Видеообзор: ZmNJcxUtKrM |
|||||
2 | State - КНБ - States |
1 тест |
|||
Мы начинаем создание программы "Камни, ножницы, бумага" для демонстрации шаблона проектирования: "State". На этом уроке мы подготовим основные классы и интерфейс. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 37 мин. [Показать отчёт] Научился: метод context.show(); становится перегружаемым из класса State.java В классе состояния камня на второй иллюстрации тестово поменяли камень на бумагу и вывели результат на экран В среднем окне видно, что один и тот же оператор context.show(); выводит разные значения в консоль после изменения состояния в классе Камня Прикрутив к этой конструкции рандомайзер получим отличную игру |
|||||
3 | State - КНБ - Play |
1 тест |
|||
Мы продолжаем создание программы "Камни, ножницы, бумага" для демонстрации шаблона проектирования: "State". На этом уроке мы реализуем необходимые алгоритмы для того, чтобы можно было полноценно поиграть. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт] Научился: Java from 7th version allow to use String argument in switch-case construction Чуть-чуть наморщил мозг и счётчик добавил через статические переменные в классе пр0грам ) |
|||||
4 | VIP - State - КНБ - JFrame |
1 тест |
|||
Мы закончили создание программы "Камни, ножницы, бумага" для демонстрации шаблона проектирования: "State". Но на этом уроке мы добавим GUI интерфейс на основе JFrame. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 43 мин. [Показать отчёт] Научился: адаптация методов из войда в возвращающие строковый тип снова дала ошибку анричбл код - не затормозил и сделал скриншот (иллюстрация номер ноль) Очень показательно, если метод уже вернул требуемое значение, то дальнейшие строки уже не читаются компилятором и находятся вне зоны доступа Решение простое - недоступные строки перенеси ДО ритёрна JFrame - библиотека джавы, ответственная за графические объекты, позволяет создавать экранные формы в отличие от консольных программ |
|||||
5 | VIP - State - КНБ - JButtons |
1 тест |
|||
Мы продолжаем создание GUI интерфейса для игры "Камни, ножницы, бумага". На этом уроке мы исправим косметические ошибки и продолжим реализовывать GUI интерфейс для возможности полноценной игры. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 2 мин. [Показать отчёт] Научился: пробовал вчера добавить остальные кнопки - также получил отображение лишь последней по коду кнопки Бумага Оператор setLayout (new GridLayout (5, 1)); создающий сетку для размещения кнопок вчера не нашел Счетчик приделал - благо задел уже был из консольной версии, жаль + "\n» не переводит строку, как хотелось - надо еще разобраться с этим |
|||||
6 | ПОЛУФИНАЛЬНЫЙ УРОК |
без видео 1 тест |
|||
Поздравляю c завершением первой части курса. Напиши, чему ты научился, нравится ли тебе данный шаблон. Какие видишь преимущества и недостатки. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 33 мин. [Показать отчёт] Научился: шаблон Состояние хорошо подходит для написания интернет-магазина в части Корзина-Покупка. В зависимости от состояния покупки, до какой стадии добрался посетитель сайта, ему должны становиться доступны различные возможности и естественно, отключаться ненужные. К примеру, правка содержимого корзины должна становиться недоступной с момента перехода к оплате корзины, иначе неясно за что оплачено, за что нет. До оплаты должны быть доступны варианты платежа, после транзакции, это должно стать информацией о совершенном покупателем выборе. В рассмотренной игре КАМЕНЬ-НОЖНИЦЫ-БУМАГА состояния были реализованы классами StateKam.java StateNoz.java State Bum.java В каждом из этих классов предусмотрели три игровых метода, для каждого из вариантов, выбрасываемых игроком. Для выброшенного камня ответы не сходились с классом, разработанным для состояния «выброшены ножницы», и аналогично с состоянием «выброшена бумага». Курс прекрасен отличным аудиорядом - никаких проблем с громкостью здесь не наблюдалось. Уроки краткие, с выделением времени на выполнение таких уроков не возникает проблем. И да, как же хорошо не смотреть на клавиши ноута при наборе текста! Ошибаюсь до сих пор, но уже начал получать удовольствие от такого набора текста. Спасибо за Марафон! Сложности: Понять, насколько облегчается понимание кода, если давать ПРАВИЛЬНЫЕ И СООТВЕТСТВУЮЩИЕ функционалу имена полям и методам |
|||||
7 | State - Целый калькулятор - States |
1 тест |
|||
Мы начинаем создание целого калькулятора для демонстрации использования шаблона проектирования State. На этом уроке мы изучим работу калькулятора. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 3 час. 29 мин. [Показать отчёт] Научился: число плюс равно даст в результате на калькуляторе удвоенное число введенное до плюса Получив задание наваять граф по функционалу калькулятора, вспомнил о draw.io Результат изысканий на иллюстрации номер 0 Попробовал поиграть с графическими шаблонами, доступными на draw.io |
|||||
8 | State - Целый калькулятор - Context |
1 тест |
|||
Мы продолжаем создание целого калькулятора для демонстрации использования шаблона проектирования State. На этом уроке мы реализуем базовую логику. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 26 мин. [Показать отчёт] Научился: в икс будет передаваться первый операнд, в игрек - второй, строковая переменная оп будет хранить знак операции, тип Стейт будет отвечать за текущее состояние калькулятора Для каждого из состояний создали класс, имлементирующий Состояние Сложности: |
|||||
9 | State - Целый калькулятор - Press key |
1 тест |
|||
Мы продолжаем создание целого калькулятора для демонстрации использования шаблона проектирования State. На этом уроке мы реализуем основной класс Program(), чтобы можно было тестировать написанный код. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 9 мин. [Показать отчёт] Научился: в конструкте switch-case наваял для каждого кейса повторяющиеся методы в каждой строке, и лишь по видео вспомнил, что повторы можно не писать, а указать лишь последний Но работает и так с излишностями ) В тестировании снова чудил - проверял как добавить умножение на 10 вводя двузначное число десять, забыв про цифровой ввод - со второй попытки дошло, что вводить надо просто ноль ) |
|||||
10 | State - Целый калькулятор - Logic |
1 тест |
|||
Мы продолжаем создание целого калькулятора для демонстрации использования шаблона проектирования State. На этом уроке мы реализуем переход между состояниями ввода данных. Постарайтесь самостоятельно найти все ошибки в программе. Потом сравните со списком ошибок, которые нашёл Иван Воронин: https://www.videosharp.info/10558/checking/design-state=1510 Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 41 мин. [Показать отчёт] Научился: в конструкте свичкейс нашел ошибки - вычистил. Они видны в прошлом отчете, если кто смотрел иллюстрации, там где я нашлёпал лишних, но ещё и неверных операторов Попробовал сброс ввода литерой с - не сбрасывает Искал недолго - стояла русская раскладка клавиатуры, переключив на латиницу сброс работал успешно без перезапуска приложения |
|||||
11 | State - Целый калькулятор - 16 кнопок |
1 тест |
|||
На этом уроке мы сделаем графический интерфейс для калькулятора. Попрактикуемся в использовании JFrame, JButton, JLabel, JPanel. Немножко доработаем контекст и состояния. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 5 час. 19 мин. [Показать отчёт] Научился: чтобы оживить кнопки от джифрейма, им надо применить метод addActionListener, который потребует имплементации экшнЛиснера, а также наличия метода void actionPerformed(ActionEvent e), отвечающего за событие нажатия кнопки Действительно, программулина получилась душевная и годная для переделки под различные задачи - в зависимости от Состояния приложение обрабатывает одинаковую команду (метод) по-разному. Вот здесь весь оверрайд и кстати! |
|||||
12 | State - Целый калькулятор - Fix Bugs |
1 тест |
|||
На этом уроке мы исправим ошибки, которые были допущены при реализации функций перехода между состояниями. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 29 мин. [Показать отчёт] Научился: ошибки видел, но исправить не брался, радуясь уже тому, что курс удается повторить без ошибок фатального характера, как это было в Комбинаторике, где нужный класс отрабатывал не так, как в видео. Подозревал тому причиной различия в хардвере, студия под ПК и студия под Мак выглядят даже интерфейсом по-разному, что говорить о функциональности, естественно, она должна варьироваться. Ошибки совершал свои лично, их пока удается нейтрализовать, что уже радует |
|||||
13 | ФИНАЛЬНЫЙ УРОК |
без видео 2 теста |
|||
Поздpaвляю! Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест". Напиши отзыв или видеообзор по этому видеокурсу. Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт] Научился: в начале ролика видео с Дикаприо, когда он летел в Россию и мотор загорелся - тоже про состояния полёта и реакцию паксов ) Курс достаточно ясно излагает смысл стейтпаттерна, кода немного, в финале - красивая экранная форма с калькулятором. Возможность для развития программы - к кнопкам можно прикрутить иной, нужный по ТЗ функционал, а интерфейс + классы состояний позволяют сделать разноплановый отклик на одни и те же запросы пользователя в зависимости от контекста. Почву под ногами этот курс почувствовать позволяет более чем. Спасибо за уроки! Видеообзор: l7IxraKNzZk |
|||||
Итого: 13 видеоуроков |
2 час. 18 мин. 15 тестов |
11 чел. | |||
Финалисты: Сергей Соколов, Иван Воронин, Алексей Малышев, Александр, Новопашин Владимир, Tekashnik, Виктор, Dmitry Sinitsin, Yefim, Anatoli, Tom . |