# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
1 тест |
|||
Factory - Shapes - Три фигуры Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Узнал о базовых шаблонах, которые ранее использовал, но не знал что это шаблоны. Сложности: найти время Комментарии: Изучил ссылки, прочитал статью на хабре, очень интересный курс предвижу =) |
|||||
2 | Factory - Shapes - Абстракция |
1 тест |
|||
На этом уроке мы оптимизируем ранее созданный код. Для этого мы создадим абстрактный класс Shape, в котором создадим абстрактный метод draw() и унаследуем этот класс во всех ране созданных классах: ShapeCircle(), ShapeLine() и ShapeSquare(). Так же мы создадим ещё один класс ShapeStar(), который тоже унаследует класс Shape() и будет рисовать звёздочку. Отчёт отправил: 10558. Иван Воронин Выполнено за 9 час. 10 мин. [Показать отчёт] Научился: Ничему новому Сложности: найти время Комментарии: Создал список и нарисовал каждый элемент через цикл. |
|||||
3 | Factory - Shapes - Созидатель |
1 тест |
|||
На этом уроке мы реализуем фабрику фигур. Для этого мы создадим метод createShape(), который будет создавать фигуры по их названию. Вначале мы реализуем данный метод в основном классе Program(), после чего вынесем его в отдельный класс Factory() и модифицируем код, чтобы наша фабрика заработала =) Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Отличный урок реализации фабрики. По поводу того, что нельзя использовать свитч для сравнения строк, странно, но как то проблем с этим не возникало никогда. На скриншоте показана реализация сравнения через свитч, работает быстрее чем вариант с ифами. |
|||||
4 | Factory - Shapes - Список |
|
|||
На этом уроке мы порефакторим наш код. Первое что мы сделаем, это создадим список наших фигур. После чего мы добавим в нашу фабрику генератор случайных фигур. Которые добавим в список, после чего выведем его в консоль. Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Отличный урок, рандом всегда полезная штука была для тестирования и наполнения демо-контентом =) |
|||||
5 | Factory - Shapes - Interfactory |
1 тест |
|||
На этом уроке мы немного переделаем нашу фабрику. Для этого мы создадим интерфейс Drawable(), заменим везде "extends Shape" на "implements Drawable" и удалим абстрактный класс Shape(). Так же мы добавим новую фигуру и возможность добавления фигур через консоль. Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: В данном случае интерфейс выглядит веселее, чем абстрактный класс, но в процессе доработки ещё не раз можно менять логику. з.ы. Добавить строку с описанием вариантов возможный фигур при вводе с консоли. |
|||||
6 | Factory - Storage - Читатель |
|
|||
Мы напишем ещё одну программу для демонстрации шаблона проектирования «Фабрика». В техзадание программы мы добавим минимально необходимые усложнения, чтобы продемонстрировать использование многослойной фабрики, когда создание и подготовку объектов выполняют отдельные «цеха» фабрики. Задание: Написать программу для сложения двух чисел. Исходные данные брать либо с клавиатуры, либо из файла numbers.txt На этом уроке мы напишем пример основной программы и создадим абстрактный класс, который объединит всех читателей. Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт] Научился: Ничему новому Сложности: найти время Комментарии: Далее реализуем наследники от Reader() каждый из которых реализует свои методы чтения. |
|||||
7 | Factory - Storage - Файл и Сканер |
1 тест |
|||
На этом уроке мы создадим двух Читателей. Один умеет считывать с клавиатуры - ReaderScanner, второй умеет считывать из файла - ReaderFile. У каждого читателя будет реализована дополнительный метод init (), который необходимо вызывать сразу после создания экземпляра, чтобы подготовить класс к считыванию чисел методом doRead(). Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Ну примерно так и представлял себе реализацию, использовал в основном классе main только ReaderScanner, чтобы было чем заняться в след. уроке =) |
|||||
8 | Factory - Storage - Запуск |
|
|||
На этом уроке мы поочерёдно создадим и запустим программу с каждым читателем. Сначала проверим, как работает читатель с клавиатуры, потом - из файла. Нужно будет предварительно создать текстовый файл numbers.txt и вписать в нём два числа на отдельных строчках. Попробуйте самостоятельно создать класс фабрики для создания читателей. Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт] Научился: Ничему Сложности: найти время Комментарии: Так как на прошлом уроке уже показал реализацию ReaderScanner, то на этом уроке скрин только с реализацией ReaderFile. |
|||||
9 | Factory - Storage - Фабрика |
1 тест |
|||
На этом уроке мы создадим класс Factory, в которой разместим статическую функцию по созданию читателей. После создания экземпляра каждого типа, необходимо его по-своему инициализировать, делать это в одной функции не разумно. На следующем уроке мы создадим отдельные «цеха», то есть под-классы фабрики для каждого типа читателя. Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Всё же использовал switch, так же реализовал оба читателя, как скриншоте видно работу factory при создании читателя из файла. Отличный урок как всегда, идём дальше. |
|||||
10 | Factory - Storage - Фабричные цеха |
|
|||
На этом уроке мы создадим два цеха - класс FactoryScanner - для создания и подготовки читателей с клавиатуры. класс FactoryFile для создания и подготовки читателей с файла. Эти классы разумно оформить наследниками от нашей фабрики. В них нужно определить функцию Reader createReader (). А сама фабрика станет абстрактной, так как вся работа выполняется в цехах. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Отличный курс по фабрике, как говорится: "вкусновато, но маловато" правда данный шаблон уже затрагивали в других курсах по Java, так что доп. практика отличная. Немного порефакторил код. Реализован ReaderRandom, в котором априори метод инициализации не нужен. |
|||||
11 | ФИНАЛЬНЫЙ УРОК |
без видео 10 тестов |
|||
Поздpaвляю! Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест". Напиши отзыв или видеообзор по этому видеокурсу. Отчёт отправил: 10558. Иван Воронин Выполнено за 15 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Отличный курс и шаблон проектирования. Очень полезный, его можно использовать например в игре Xonix, чтобы создавать противников (шарики, квадратики). Вроде бы объекты разные, но наследуют общий корни, тем самым могут обрабатываться одним циклом и хранится в общем массиве объектов. Думаю, когда дойдут руки до курса по игре Xonix, можно будет порефакторить код, чтобы использовать шаблон проектирования там, где это явно намекает =) |
|||||
Итого: 11 видеоуроков |
1 час. 11 мин. 16 тестов |
16 чел. | |||
Финалисты: Иван Воронин, Сергей Соколов, Станислав, Povilas Abramovicius, Aleksej Fiodorov, Andrej Petrunev, Sergej Šugajev, Андрей Гладков, Новопашин Владимир, Виктор, Tekashnik, Andrei, Dmitry Sinitsin, Yefim, Anatoli, Tom . |