JavaRush /Курсы /Java Collections /Большая задача: Паттерн создания объектов

Большая задача: Паттерн создания объектов

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

— Привет, боец!

— Поздравляю тебя с повышением уровня квалификации. Нам нужны отчаянные парни.

— Уверен, у тебя есть еще много нерешенных задач. Самое время решить парочку из них!

16
Задача
Java Collections, 5 уровень, 15 лекция
Недоступна
Фабрики (1)
Привет! Сейчас ты будешь разбираться с паттерном Factory Method. Возьмем пример с людьми. Будем определять, к какому типу относится человек в зависимости от его возраста. В этом задании подготовим данные, которые будем использовать в фабрике. 1. Для всех типов людей создай общий интерфейс Human.
16
Задача
Java Collections, 5 уровень, 15 лекция
Недоступна
Фабрики (2)
1. Создай публичный класс MaleFactory в пакете male с публичным методом getPerson, который принимает один параметр int age (возраст) и возвращает нужный объект одного из классов, реализующих интерфейс Human. 2. Логика метода getPerson: используя константу MAX_AGE определи, какой класс соответствует
8
Задача
Java Collections, 5 уровень, 15 лекция
Недоступна
Фабрики (3)
1. Создай пакет female, в котором создай KidGirl, TeenGirl и Woman аналогично классам из пакета male. 2. Создай в пакете female фабрику FemaleFactory аналогичную MaleFactory с тем же принципом получения объектов. 3. Подумай, что общего у двух фабрик? Что можно сделать, чтобы легко можно было перек
8
Задача
Java Collections, 5 уровень, 15 лекция
Недоступна
Фабрики (4)
1. В корне задачи создай интерфейс AbstractFactory, в который вынеси общий в фабриках метод. 2. Реализуй интерфейс AbstractFactory в обеих фабриках. 3. В корне задачи создай класс FactoryProducer, в котором создай публичный статический энум HumanFactoryType со значениями MALE, FEMALE.
Комментарии (115)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Denis Odesskiy Уровень 47
11 декабря 2024
Вот бы такие задачи по всем основным паттернам проектирования. Они отлично закрепляют теорию по этим самым паттернам и хорошо запоминаются! Т.е. я хочу сказать что тут на курсе конечно встречалось в больших задачах уже много паттернов, но почти все они шли в составе большой задачи как один из многих пунктов. Это конечно тоже здорово, но для закрепления паттернов мне понравилась именно эта, простая, коротенькая и посвященная только данному паттерну...
Dmitro Уровень 51
12 сентября 2024
Вот это была отличная задача. Доходчиво про фабричный метод.
Fl1s Уровень 51
16 февраля 2024
Для тех, кто не хочет писать на ифах:

public static AbstractFactory getFactory(HumanFactoryType hft){
        switch (hft){
            case MALE, FEMALE -> {
                return (AbstractFactory) new FemaleFactory();
            }
            default -> {
                return null;
            }
        }
    }
Андрей Уровень 51
15 мая 2024
оно разве не будет всегда возвращать FemaleFactory()?
Fl1s Уровень 51
18 мая 2024
Не должно, по крайней мере можешь как обычно свич блок расписать
Assanali Уровень 29
25 декабря 2024
вроде в книге Clean Code Robert Martin написано, что null плохо возвращать
Евгений Пикин Уровень 46
20 июня 2025
либо тернарным: public static AbstractFactory getFactory(HumanFactoryType type) { return type.equals(HumanFactoryType.MALE) ? new MaleFactory() : new FemaleFactory(); }
Алексей С Уровень 33
8 сентября 2023
Честно придется посмотреть еще раз про эти паттерны. Делая задачу под диктовку не очень понял смысл к сожалению.
PhanSca Уровень 48
18 мая 2023
Побольше бы таких задач.
milniy87 Уровень 41
29 марта 2023
Не очень то и большая задача. Обычная, ну средних размеров, короче как у всех))))
marych Уровень 51
23 марта 2023
Вот так бы по всем задачам. Простые, но дающие пользу. По какой-то удивительной причине в современной системе образование приветствуется подход, что чем зубодробительнее задачи, тем умнее будут ученики. JavaRush хороший ресурс, но бездумно копирует этот же подход. Однако следует задуматься все-таки, что если ваш курс начинают несколько сотен тысяч людей, а на завершающем этапе, где я сейчас, остается 5221 человек, то что-то ни так не с сотнями тысяч людей, искренне желающих получить образование, а с системой образования. В том числе и "javarush"овской. Люди не тупые, их просто не умеют учить. Их надо учить максимально близко к тому, как было на этой задаче. Просто, понятно и с пользой для будущего. Людям надо помогать получать образование, а не отсеивать их при помощи сложных непонятных задач, связанных с бессмысленным копипастом и гуглением источником копипаста. Во главе образования должно лежать понимание, а не навык находить ответ в гугле.
23 марта 2023
Трудно с Вами поспорить, но Я попробую) На самом деле истина, как всегда, где-то посредине. Во-первых, под диктовку, как в этой задаче, на работе писать не дадут. Во-вторых, умение напрячь голову, а не проглатывать разжеванное - полезный навык, который ценится работодателем В-третьих, ну и так далее))) Ну и разумеется теоретический подход к образованию надо менять. Лучше всего материал усваивается на практике с привязкой к реальным ситуациям.
marych Уровень 51
25 марта 2023
Я немного о другом все-таки. О системе обучения. Цель образования - создание у студента ПОНИМАНИЯ изучаемого материала и умения ПРИМЕНЯТЬ полученные знания на практике. Другой цели у образования нет. Данная задача была близка к идеалу именно с этой точки зрения. Дать понимание и умение применять. Способность "напрягать голову" - вещь полезная, но только в том случае, когда в этой голове есть знание и есть понимание этого знания. Тогда и появляется способность комбинировать эти знания во что-то новое и требуемое. И да, эта способность (но не навык) действительно ценится работодателем. И полностью с вами согласен в том, что привязки к реальным ситуациям в материалах не хватает.
Константин Уровень 51
24 февраля 2023
Прекрасная задача!
NacWay Уровень 37
13 февраля 2023
Форма подачи информации о патернах- пушка. Достаточно просто и логически понятно. 🕶
wakeUpNeo Уровень 47
27 октября 2022
👍