JavaRush /Курсы /Java Collections /Задачи | 6 уровень | 4 лекция

Задачи | 6 уровень | 4 лекция

Java Collections
6 уровень , 4 лекция
Открыта

— Привет, Амиго.

— Привет, Диего. Что это у тебя за китайские иероглифы с кнопкой в центре?

Задачи | 6 уровень | 4 лекция - 1

— Это же всем известный MVC! Ты обязан его знать. Так, быстро иди разбираться в шаблоне MVC. Думаю, после решения задачи ты поймешь, что скрывается под иероглифами. Я дам тебе одну легенькую задачу и другую большую посложнее. Как решишь легкую, так и приступай к большой.

16
Задача
Java Collections, 6 уровень, 4 лекция
Недоступна
MVC - простая версия
В отдельных файлах создай классы Service, Model, View, Controller. Распредели методы из класса Solution по созданным классам учитывая, что должен получиться MVC. Создай нужные поля класса при необходимости. Созданные поля должны быть сразу проинициализированы. Не добавляй конструкторы и другие (свои) методы. Метод main() оставь в классе Solution.
16
Задача
Java Collections, 6 уровень, 4 лекция
Недоступна
Рефакторинг MVC
Перемести некоторые методы в нужные классы, что бы получить паттерн MVC. Если необходимо - внеси изменения в метод main, которые отражают внесенные тобой изменения. Поведение программы при этом не должно измениться. НЕ изменяй названия классов, методов и полей.
Комментарии (70)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Denis Odesskiy Уровень 47
13 декабря 2024
MVC это не паттерн, это архитектура, потому и разночтения и реализации разные. Лучше всего читать на мой взгляд по этому поводу первоисточники, статьи и труды Трюгве Реенскауга. Только учтите что на тот момент не было понятия Controller вместо него Трюгве использовал термин Editor (так как работа часто шла через консоль тогда, через редактор текста). Также модель может быть весьма обширной, она содержит не только данные (ведь это же не БД). Для того чтобы обеспечить хорошую декомпозицию и при этом обеспечить слабую связываемость, можно использовать интерфейсы и паттерн фасад. Именно они и будут той прослойкой общения между тремя "буквами" MVC. А вообще тема очень обширна и не тривиальна, сам потихоньку постигаю сей дзен...🧐
Artem Dudarev Уровень 51
13 марта 2024
ку
SomeBody098 Уровень 51
1 ноября 2024
Куку
Артём Сёмкин Уровень 47
25 апреля 2025
ку-ку
Джонни Уровень 51
17 февраля 2023
Если у вас остались вопросы к второй задаче, в которой вы хотели в контроллере пробросить вызов метода у модели, не удаляя из модели логику, то вспоминаем картинку с первой лекции уровня и сидим смотрим ютуб
Andrey Karelin Уровень 41
3 мая 2022
У меня вопрос: Почему на картинке MVC написано латиницей, а не китайскими иероглифами?
aDuVaN4Ik Уровень 42
25 декабря 2022
Насколько я понял это для того что бы было примерно понятно о чем эта схема.
Ars Уровень 41
23 ноября 2021
Инфа по последней задаче: Среднее количество попыток для этой задачи 1.66. Всего эту задачу решили 3519 учеников.
Kes Уровень 41
27 ноября 2021
А зачем ты это пишешь, если это и так каждый сам увидит?)
Ars Уровень 41
27 ноября 2021
Каждый увидит только инфу на момент когда он решил задачу. Мне интересно читать комментарии и смотреть когда и сколько человек решило задачи и сравнивать это с текущим состоянием. Жаль, в комментариях не пишут среднее количество попыток. Например, иногда мне удаётся решить сложную задачу с первой попытки. А там среднее количество попыток ~2 или 3. И непонятно, это задача не такая сложная или многие просто сдают готовое решение. Имея в комментариях информацию по среднему количеству попыток можно было бы понять, как было раньше.
Kes Уровень 41
29 ноября 2021
А понял, до сих пор доставляет удовольствие решить задачу за меньшее количество попыток, чем остальные :) Я часто именно на очень легких задачах сразу качаю готовое решение. Мне жалко времени его вбивать :)
Сергей Уровень 1
21 апреля 2022
Среднее количество попыток для этой задачи 1.63. Всего эту задачу решили 3847 учеников.
Max Zap Уровень 41
11 ноября 2021
По поводу второй задачи странные ощущения. Раньше в задачах на MVC контроллер был легковесным, а тут в него напихали логики (прибавления и уменьшения скорости), хотя модель осталась без логики, своего рода Entity. Не лучше ли было логику вынести из контроллера в какой-нибудь сервис-модель?
25 сентября 2021
Китайский надо будет познакомиться
IwanIV Уровень 41
29 декабря 2021
вместе с коллекциями джавы...
alex_us Уровень 20
18 января 2021
Перенос изменения скорости во второй задачи в контроллер. Мне одному кажется что это безумная дичь? Что за бред?? зачем бизнес логику запихивать из model в контроллер?? в чем смысл?? это же прямо противоречит замыслу MVC нет?
zdRusty Уровень 36
21 февраля 2021
Ну да ТТУК (Fat Ugly Stupid Controller), но напрямую обращаться к модели тоже нельзя. Нужно было оставить методы в модели, но пробросить их вызов через контроллер (но не знаю, согласен ли валидатор).
Данил Уровень 27
14 июля 2021
согласен. я так и сделал
Андрей Шубный Уровень 51
18 февраля 2022
контроллер меняет состояние модели, все правильно
Уровень 1
18 января 2021
вторая задача больше на геттеры и сеттеры , чем на MVC
Иван Уровень 41
23 декабря 2020
Хорошо бы ещё пару задачек на лучшее понимание разницы между контролером и моделью
Галкин Юрий Уровень 41
16 января 2022
Такие задачи разобраться не помогут.