Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 4
1

Паттерн Factory Method

09.12.2015, 20:02. Показов 2034. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите доделать задачу.
Используя шаблон проектирования Factory Method подготовить код на языке java для организации процесса создания различных игрушек (Toy) некоторой фабрикой игрушек (ToyFactory), например машинки (Сar), куклы (Doll) ....
Вот код(если что-то неправильно, исправьте пожалуйста):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
abstract class ToyFactory { }
 
class Doll extends ToyFactory { }
 
class Car extends ToyFactory { }
 
abstract class Creator {
    public abstract ToyFactory factoryMethod();
}
 
class DollCreatorA extends Creator {
    @Override
    public ToyFactory factoryMethod() { return new Doll(); }
}
 
class CarCreatorB extends Creator {
    @Override
    public ToyFactory factoryMethod() { return new Car(); }
}
 
public class FactoryMethodExample {
    public static void main(String[] args) {
        // an array of creators
        Creator[] creators = {new DollCreatorA(), new CarCreatorB()};
        // iterate over creators and create products
        for (Creator creator: creators) {
            ToyFactory toy = creator.factoryMethod();
            System.out.printf("Created {%s}\n", toy.getClass());
        }
    }
}
Нужно еще в клиентском классе (Client с методом main ()) отразить процесс изготовления 5 различных игрушек, в зависимости от пожелания клиента, которое поступает. Я не знаю как это сделать, так как только начал язык изучать. Спасибо.

Добавлено через 8 часов 12 минут
очень нужно на завтра..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2015, 20:02
Ответы с готовыми решениями:

Паттерн factory method работа с отчетами (в виде xml, html) на c# (генерация отчетов)
Всем приветик)) Преподаватель дал задание на экзамене, и не как не могу с ним разобраться. Нужно...

Factory Method
Не могу понять смысл заводить себе фабрику под подклассы. Вот код, который я написал по принципу ...

Factory Method
Начал изучать шаблоны проектирования. А именно с порождающих паттернов. И тут при разборе шаблона...

Factory Method
Начал разбираться с фабричным методом нашел пример в интеренете и некоторые моменты кода не понимым...

3
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
09.12.2015, 21:12 2
Лучший ответ Сообщение было отмечено taras1995 как решение

Решение

совсем ничего не гуглится?
интерфейс:
Java
1
2
3
4
5
6
7
8
package samples.factory;
 
/**
 *
 */
public interface Toy {
    void perform();
}
классы игрушек:
Java
1
2
3
4
5
6
7
8
9
10
11
package samples.factory;
 
/**
 *
 */
public class Hulk implements Toy {
    @Override
    public void perform() {
        System.out.println("Hulk crushes!!!");
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
package samples.factory;
 
/**
 *
 */
public class Flash implements Toy {
    @Override
    public void perform() {
        System.out.println("Flash runs away!!!");
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
package samples.factory;
 
/**
 *
 */
public class IronMan implements Toy {
    @Override
    public void perform() {
        System.out.println("Iron man eats sandwich.");
    }
}
фабрика:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package samples.factory;
 
/**
 *
 */
public class ToyFactory {
    public Toy getToy(String toyName) {
        switch (toyName.toLowerCase()) {
            case "hulk":
                return new Hulk();
            case "flash":
                return new Flash();
            case "ironman":
                return new IronMan();
            default:
                return null;
        }
    }
}
"тест"
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package samples.factory;
 
/**
 *
 */
public class MyMarvelCollection {
    public static void main(String[] args) {
        ToyFactory factory = new ToyFactory();
 
        Toy superhero = factory.getToy("Hulk");
        superhero.perform();
        superhero = factory.getToy("Flash");
        superhero.perform();
        superhero = factory.getToy("IronMan");
        superhero.perform();
    }
}
конкретная игрушка тянется из фабрики и на ней вызывается метод.
Думаю "клиентский класс" не составит труда допилить.
1
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 4
09.12.2015, 21:19  [ТС] 3
можно еще "клиентский класс" пожалуйста? спасибо.
0
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
09.12.2015, 21:32 4
Лучший ответ Сообщение было отмечено taras1995 как решение

Решение

Цитата Сообщение от taras1995 Посмотреть сообщение
можно еще "клиентский класс" пожалуйста? спасибо.
последний класс это он и есть. Судя по заданию нужно пять игрушек достать из фабрики. Допиши по образцу. Если надо куда-то их положить, то можно использовать лист:
Java
1
2
3
4
...
List<Toy> heroes = new ArrayList<>();
heroes.add(factory.getToy("Hulk"));
...
проверить лист можно через foreach:
Java
1
2
3
4
for (Toy t : heroes) {
            t.perform();
        }
//или так: heroes.forEach(samples.factory.Toy::perform);
1
09.12.2015, 21:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2015, 21:32
Помогаю со студенческими работами здесь

Factory Method Pattern
Добрый день, товарищи. Постепенно изучаю паттерны проектирования и решил написать generic...

Объясните паттерн Абстрактная фабрика (Abstract Factory)
Изучаю паттерны и застрял на одном из них. Есть код описывающий паттерн абстрактной фабрики. ...

Курсовая работа Паттерн «Абстрактная фабрика/Abstract Factory»
Задание на курсовой проект: Паттерн «Абстрактная фабрика/Abstract Factory». Реализация 2-х/3-х...

Реализовать совмещенный патерн Factory Method и Сomposite
Помогите реализовать совмещенный патерн Factory Method и Сomposite.Вот их примеры отдельно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru