Задание № 3132

Студент

Беренгольц Константин

Задача

Фабрика

Состояние

Завершено

Баллов

4

Дедлайн
15 марта 2021
Назначено

04.03.2021, 08:16

Завершено

01.05.2021, 14:31

Необходимо разработать модуль фабрики, который по строчке создает объект требуемого типа.

Входные данные

Текстовый файл с описанием того, какие объекты нужно создать

point 1 2
rect 1 2 3 4
line 10 10 20
circle 10 10 5

Поддерживаемые записи во входном файле:

  • point x y — точка в координатах (x, y)
  • rect x1 y1 x2 y2 — прямоугольник, заданный точками (x1, y1) и (x2, y2)
  • line x1 x2 x2 y2 — линия, заданная точками (x1, y1) и (x2, y2)
  • circle x y r — круг с центром в (x, y) и радиусом r

Выходные данные

У каждого типа должен быть виртуальный метод Draw, который выводит в консоль название типа и его основные параметры. Например, у точки: Point at (10, 20) и т.д. После создания всех объектов, описанных во входном файле, нужно вызвать Draw для каждого из них. Пример вывода:

point at (10, 20)
circle at (100, 300), rad = 50
rect at (100, 200), (200, 300)

Реализация

Необходимо создать все объекты, описанные в полученном на вход файле с помощью модуля фабрики, который по текстовой строчке создает и возвращает объект нужного типа, и после этого вызвать Draw для каждого из этих объектов.

Примечание

Задача должна быть реализована на базе фреймворка OOC.

Действия