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