Вот бы такие задачи по всем основным паттернам проектирования. Они отлично закрепляют теорию по этим самым паттернам и хорошо запоминаются! Т.е. я хочу сказать что тут на курсе конечно встречалось в больших задачах уже много паттернов, но почти все они шли в составе большой задачи как один из многих пунктов. Это конечно тоже здорово, но для закрепления паттернов мне понравилась именно эта, простая, коротенькая и посвященная только данному паттерну...
либо тернарным:
public static AbstractFactory getFactory(HumanFactoryType type) {
return type.equals(HumanFactoryType.MALE) ? new MaleFactory() : new FemaleFactory();
}
Вот так бы по всем задачам. Простые, но дающие пользу.
По какой-то удивительной причине в современной системе образование приветствуется подход, что чем зубодробительнее задачи, тем умнее будут ученики. JavaRush хороший ресурс, но бездумно копирует этот же подход.
Однако следует задуматься все-таки, что если ваш курс начинают несколько сотен тысяч людей, а на завершающем этапе, где я сейчас, остается 5221 человек, то что-то ни так не с сотнями тысяч людей, искренне желающих получить образование, а с системой образования. В том числе и "javarush"овской.
Люди не тупые, их просто не умеют учить.
Их надо учить максимально близко к тому, как было на этой задаче. Просто, понятно и с пользой для будущего.
Людям надо помогать получать образование, а не отсеивать их при помощи сложных непонятных задач, связанных с бессмысленным копипастом и гуглением источником копипаста. Во главе образования должно лежать понимание, а не навык находить ответ в гугле.
Трудно с Вами поспорить, но Я попробую)
На самом деле истина, как всегда, где-то посредине.
Во-первых, под диктовку, как в этой задаче, на работе писать не дадут.
Во-вторых, умение напрячь голову, а не проглатывать разжеванное - полезный навык, который ценится работодателем
В-третьих, ну и так далее)))
Ну и разумеется теоретический подход к образованию надо менять. Лучше всего материал усваивается на практике с привязкой к реальным ситуациям.
Я немного о другом все-таки. О системе обучения. Цель образования - создание у студента ПОНИМАНИЯ изучаемого материала и умения ПРИМЕНЯТЬ полученные знания на практике. Другой цели у образования нет.
Данная задача была близка к идеалу именно с этой точки зрения. Дать понимание и умение применять.
Способность "напрягать голову" - вещь полезная, но только в том случае, когда в этой голове есть знание и есть понимание этого знания. Тогда и появляется способность комбинировать эти знания во что-то новое и требуемое. И да, эта способность (но не навык) действительно ценится работодателем.
И полностью с вами согласен в том, что привязки к реальным ситуациям в материалах не хватает.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ