# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Мы начинаем работу с Шаблоном проектирования Strategy (стратегия), который выбирает наилучший способ достижения результата. Это значительно упрощает процесс создания программ. Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Данный шаблон использовался интуитивно =) |
|||||
2 | Strategy - Operation - Context |
|
|||
На этом уроке мы начинаем создание программы при помощи шаблона проектирования Strategy (Стратегия). Для начала мы опишем интерфейс нашей программы, так как с этого начинается описание общего знаменателя всех "Стратегий", которые будут применяться. Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Тоже использовали аналогичный метод ранее в программах, при выборе в каком формате сохранять/выводить данные (json/xml/raw). Но исходя из того, какие операции использовали в уроке, то можно предположить использование в программе "калькулятор" =) |
|||||
3 | Strategy - Operation - Program |
1 тест |
|||
На этом уроке мы опишем основной класс программы, который продемонстрирует работу нашего шаблона проектирования Strategy (Стратегия). Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Решил добавить операцию деления, а то как то не полноценная программа получается =) Так же всё же решил добавить доп. метод для вывода символа операции, чтобы код основной программы выглядел более красиво и можно было полноценно использовать перебор массива стратегий =) |
|||||
4 | Strategy - Join - ArrayList |
|
|||
На этом уроке мы начнём создание программы для слияния строк из ArrayList(). Так как обычная конкатенация строк происходит быстрее с маленьким количеством одновременно склеиваемых строк, то мы воспользуемся шаблоном проектирования Strategy (Стратегия) для выбора наибыстрейшего способа склеивания. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Реализовал класс Context() который просто склеивает слова и возвращает результат. Отличная практика, идём дальше. |
|||||
5 | Strategy - Join - Context |
1 тест |
|||
На этом уроке мы реализуем класс Context(), который будет выбирать наилучшую стратегию для выполнения склеивания строк. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Реализовал обе стратегии, но как обычно вместо буфера использовал билдер по понятным причинам =) |
|||||
6 | Strategy - Join - String/Buffer |
|
|||
На этом уроке мы создадим интерфейс Strategy(), в котором будет всего один метод join(). Так же реализуем классы стратегий StrategyString и StrategyBuffer(). Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: И без таймера знаю, что конкатенация строк перед добавлением в StringBuilder/Buffer() не отнимает время, поэтому каждую строчку нужно .append() отдельно друг от друга, это будет быстрее. |
|||||
7 | Strategy - Join - Log/Timer |
1 тест |
|||
На этом уроке мы продемонстрируем как можно в одном классе использовать несколько шаблонов. Для этого мы перенесём синглтоны Log() и Timer() из прошлых уроков. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Файлы из проекта по синглтону просто перенёс в папку с исходниками данного проекта, они автоматически отобразились в списке, поэтому ничего копипастить не пришлось. Это один из положительных моментов при реализации каких либо методов отдельными классами/файлами, чтобы легко можно было переносить между проектами. |
|||||
8 | Strategy - Person - Schema |
|
|||
На этом уроке мы начинаем создание программы в котором шаблон проектирования Strategy (Стратегия) мы применим дважды. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Похожий шаблон уже применяли в прошлых курсах по Java. Реализовал UML схему, думаю в будущем она будет дополняться. |
|||||
9 | Strategy - Person - Program |
1 тест |
|||
На этом уроке мы реализуем нашу программу по ТЗ, которое мы создали на прошлом уроке. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Начало кода положено, идём дальше. з.ы. главное не бежать впереди паровоза. =) |
|||||
10 | Strategy - Person - Format - Context |
|
|||
На этом уроке мы реализуем класс ContextFormat(). Его задача в выборе необходимого формата вывода данных. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Реализовал через свитч, как то веселее выглядит. |
|||||
11 | Strategy - Person - Format - Strategy |
|
|||
На этом уроке мы реализуем метод format() в классах FormatTXT(), FormatXML() и FormatJSON(). Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Оптимизировал свитчи, убрав лишнюю проверку "txt", раз уж у нас этот формат берётся по-умолчанию, то лишние строки кода нам ник чему. Отличный урок. Подобное уже реализовывали в курсе ООФрукты. |
|||||
12 | Strategy - Person - Save - Context |
1 тест |
|||
На этом уроке мы реализуем класс ContextSave(). В котором опишем выбор сохранения данных, вывод: на экран SavePrint() или в файл SaveFile(). Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Проверку на пустоту всегда делаю по своему либимому методу, вначале тримлю строчку, малоли, какой там лишний мусор может попасться, а после этого есть замечательная проверка на пустоту в строке =) см. скриншот. |
|||||
13 | Strategy - Person - Save - Strategy |
|
|||
На этом уроке мы завершаем написание нашей программы с двойной демонстрации шаблона стратегия (Strategy). Для этого мы реализуем оставшийся класс SaveFile(). Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Ваш вариант по аналогии с using в C# я вначале сам использовал, потом уже видео снял с паузы и понял, что сделал так же. Но, потом я реализовал вариант Java 1.7+ более компактный и уже не требующий закрывания файла, так как метод сам об этом заботится, плюс удобно выбирать кодировки для файла. Отличный урок как всегда. з.ы. Евгений Витольдович, как вам 14 строчка на скриншоте? это я сам придумал, что-то мысль закралась, а может написать присвоение по аналогии: "a = b = 3" и java не ругнулась, в итоге работает как предполагалось, молодцы разрабы языка!!! |
|||||
14 | ФИНАЛЬНЫЙ УРОК |
без видео 5 тестов |
|||
Поздpaвляю! Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест". Напиши отзыв или видеообзор по этому видеокурсу. Отчёт отправил: 10558. Иван Воронин Выполнено за 9 час. 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Отличный шаблон проектирования. Используется много где. Так же в связке с другими шаблонами проектирования. Мы рассматривали варианты где выбирали в каком формате сохранять информацию: json/xml/raw. Так же это используется как показано на картинке, при создании сжатого архива, но разными способами: rar/zip/7z/ace/arj. При выборе способа транспортировки товара или человека из пункта А в пункт Б: на автомобиле/поезде/автобусе/пешком/самолёт/корабль. Я думаю достаточно привёл вариантов, чтобы понять, зачем нужен этот шаблон проектирования. Удачи в изучении. |
|||||
15 | VIP - Strategy - Person - UML |
1 тест |
|||
На этом уроке мы рассмотрим программу для генерации диаграмм кода на основе исходников готовой программы. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Вкратце, софтинка очень уж слабенькая, может быть я ошибаюсь и мало её юзал, но просто до неё я уже нашёл пару интересных вариантов, а именно: в курсе Java Book уже демонстрировал их. Но решил на основе пройденной программы ещё раз их использовать, см. скриншоты. з.ы. Code 2 UML (та что светлая) пришлось вручную расставлять блоки, стрелочки автоматом она провела, простенький вид, но приятнее и ближе к классическому UML, та что потемнее, это плагин для IntelliJ IDEA, под названием: "simpleUML", более подробнее всё показывает, но тоже надо лишнее не включать, чтобы построение диаграммы было более менее красиво, а не комок аля "Перекати-поле" =) |
|||||
16 | VIP - Strategy - Person - Enum |
|
|||
На этом уроке мы порефакторим нашу программу, а именно класс ContextFormat(). Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: По поводу использования свитч, реализовал ещё на прошлых уроках, а вот по поводу enum да, повеселее явно =) з.ы. как обычно убрал лишнюю проверку формата TXT, так как он всё равно у нас идёт по-умолчанию. |
|||||
Итого: 16 видеоуроков |
1 час. 43 мин. 12 тестов |
12 чел. | |||
Финалисты: Иван Воронин, Сергей Соколов, Станислав, Povilas Abramovicius, Новопашин Владимир, Tekashnik, Фомичева Наталья, Виктор, Александр, Dmitry Sinitsin, Anatoli, Tom . |