# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем знакомство с очень популярным и востребованным шаблоном проектирования - Наблюдатель / Observer. По-другому он называется Подчинённые / Dependents. Этот шаблон активно используется в событийно-ориентированных языках программирования. На следующих уроках мы создадим несколько программ, на примере которых лучше уясним суть этого шаблона проектирования. Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Наблюдатель следит за состоянием каких либо объектов и как только состояние изменилось, оповещает всех, кто находится в списке оповещения именно по этому объекту. т.е. в нашем случае, если ты находишься в пределах слышимости звонка, то ты будешь добавлен в список и оповещён о звонке, но если ты ушёл за пределы слышимости звонка, то автоматом удаляешься из списка оповещения и не услышишь звонок, который прозвенит. Естественно, удаление, добавления в список это уже доп. функционал, который анализирует дальность до объекта того, кого можно оповестить, чтобы данная система работала как нужно =) |
|||||
2 | Observer - School Bell - Student |
1 тест |
|||
Мы начинаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы реализуем интерфейс Observer(), класс OStudent() и реализуем базовый функционал будущей программы. Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт] Научился: Повторение пройденного Сложности: найти время Комментарии: Отличное начало, вот я и добрался до курса, для которого делал звуковые файлы =) Сам шаблон должен быть интересным, напоминает мне события в C#. |
|||||
3 | Observer - School Bell - Sound Bell |
|
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы реализуем класс OBell(), который будет имитировать школьный звонок. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Реализовал загрузки звукового файла (кэширование) и вызов проигрывания отдельными методами. Добавил в класс OBell() метод isPlaying(), для реализации бесконечного цикла с выходом после окончания проигрывания звонка, поэтому ожидание нажатия клавиши уже не нужно см. скриншот. |
|||||
4 | Observer - School Bell - Porter |
1 тест |
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы приступаем к реализации интерфейса Observable() и его класс Porter() implements Observable. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: прекратить эксперименты =) Комментарии: Увлёкся оптимизацией вызова звонка и доработками класса OBell() |
|||||
5 | Observer - School Bell - java.util.Observer |
|
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы переделаем нашу программу с использованием системной библиотеки для реализации Observer/Observable(). Отчёт отправил: 10558. Иван Воронин Выполнено за 45 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Добавить синглтон таймера, модернизировал его так, чтобы он возвращал пройденное время. Как видно из скриншота, каждый раз на звонок потрачено в районе секунды. Решил добавить таймер, так как звонило всего 1 раз, первый раз слишком быстро проскакивало и не успевало начать воспроизведение, видимо изза потраченного времени на кэширование звукового файла. Добавив таймер, промониторив проблему решил её и теперь каждый раз звонок проигрывается как надо, думаю для звонка можно тоже использовать синглтон, так как одного экземпляра более чем достаточно. |
|||||
6 | Observer - School Bell - java.util.Observable |
1 тест |
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы воспользуемся системным классом Observable(). Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт] Научился: java.util.Observable; Сложности: найти время Комментарии: Отличная оптимизация кода, класс Porter() прям растаял на глазах =) Очень полезный шаблон проектирования, буду использовать обязательно. |
|||||
7 | Observer - School Bell - Study and Break |
|
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы завершаем создание программы "Школьный звонок". Осталось рассмотреть дополнительную возможность передачи параметров. Отчёт отправил: 10558. Иван Воронин Выполнено за 58 мин. [Показать отчёт] Научился: Закрепил пройденное Сложности: найти время Комментарии: Класс OBell сделал Синглтоном, так как давно уже вёл к этому, он при первой инициализации загружает(кэширует в ОЗУ) необходимые для работы звуковые файлы, и при каждом последующем обращении к нему он воспроизводит файлы уже из памяти. а не загружая их каждый раз с диска. Отличный пример использования шаблона проектирования, использовать буду обязательно. |
|||||
8 | Observer - Sensor - Visaginas |
1 тест |
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы создадим программу информирования о погоде. Для этого мы создадим класс Sensor(), который будет узнавать текущую температуру и информировать об этом тех, кому это нужно и при необходимых значениях температуры. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Закрепил Observable() Сложности: найти время Комментарии: Хорошее начало, можно вместо реального датчика, добавить парсер температуры с сайта. Но это так, если реально данная тема необходима и будет работать 24/7, так как в рамках урока разброс температуры будет минимальным. |
|||||
9 | Observer - Sensor - Person |
|
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На прошлом уроке мы создали класс Sensor(), который рассылает информацию о температуре всем, кому это необходимо. На этом уроке мы создадим классы Console() и Person() как получателей информации о температуре. Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт] Научился: Закрепил работу с системными Observer/Observable() Сложности: найти время Комментарии: Отличный урок, радует, что не добавляют дубликаты одного и того же объекта. |
|||||
10 | Observer - Sensor - Cat File |
1 тест |
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы создадим класс Cat(), который будет создавать файл "cat.txt" при 18 градусах и удалять его при 0 градусов. Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: найти время Комментарии: Прикольно придумали с котом и плюс доп. вариант для закрепления идеи шаблона. Вопросов нет, идём дальше. |
|||||
11 | Observer - Sensor - Banner |
|
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы вспомним картинку, с которой начиналась наша серия уроков. Чтобы реализовать что-то похожее, мы воспользуемся классом FacadeMotivator(), которые реализовали во время прохождения Шаблона Проектирования: "Facade". Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Повторил пройденное Сложности: понять почему корректно по вертикали не центровало Комментарии: Урок отличный, но в перенесённом классе, который создавали для мотиватора/демотиватора были некоторые особенности из-за которых возникли проблемы не только у Игромистра с цветом, это я сразу понял, а вот с центровкой по вертикали пришлось повозиться, а потом решил проверить, как генерируется размер картинки, оказалось, что там учитывался размер блока под текст, но так как у нас картинки нет, а блок под текст уже не имеет смысла, то он и добавлял снизу лишнее пространство. В итоге модифицировал класс основательно, чтобы он был более универсальным. з.ы. Добавил поддержку центровки текста: top, center, bottom (по вертикали) Добавил поддержку многострочного текста, разделитель "\n", поддержку котором пришлось написать самому. Добавил вывод температуры в трёх единицах измерения: Цельсий, Фаренгейт и Кельвин. |
|||||
12 | ФИНАЛЬНЫЙ УРОК |
без видео 3 теста |
|||
Поздpaвляю! Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест". Напиши отзыв или видеообзор по этому видеокурсу. Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт] Научился: Закрепил пройденное Сложности: найти время Комментарии: Отличный шаблон проектирования, будет использовать однозначно, спасибо за курс. |
|||||
13 | VIP - Observer - Sensor - Alert |
|
|||
Мы продолжаем знакомство с шаблоном проектирования: "Observer". На этом уроке мы добавим звуковую сигнализацию к нашему температурному табло. Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Закрепил пройденное Сложности: найти время Комментарии: Перенёс класс OBell() и сделал их него синглтон OSound(). Так же перенёс синглтон Timer(), для отображения времени которое тратилось на вызов звука. Enum стадий звука уже был реализован ранее, поэтому его тоже перенёс и модифицировал под нужды текущей задачи. Мелкие правки и оптимизации кода. з.ы. Отличный урок, добавил звуки свиста чайника: ПОГРОМЧЕ и ПОТИШЕ. |
|||||
Итого: 13 видеоуроков |
1 час. 51 мин. 8 тестов |
7 чел. | |||
Финалисты: Сергей Соколов, Иван Воронин, Новопашин Владимир, Tekashnik, Александр, Anatoli, Tom . |